docker pull mysql:8.0.26
- mkdir /home/mysql/data
- mkdir /home/mysql/conf
将自定义的配置文件放在/home/mysql/conf目录下
例如自定配置文件 名为 hmy.cnf 在 /home/mysql/conf下
mysql的默认配置是/etc/mysql/my.cnf。为什么我们不直接覆盖这个配置文件呢,因为默认的my.cnf有很多自带的配置,而我们自定的配置一般只有少数,不推荐直接修改默认配置文件,所以Mysql提供两个目录,自定的配置可以放在这两个目录下面,mysql会自动合并默认配置文件 以及 这两个目录下的配置文件,作为最终的配置文件,启动mysql
两个配置文件目录是:
1./etc/mysql/conf.d
2./etc/mysql/mysql.conf.d
- docker run \
- -p 3306:3306 \
- --name mysql8 \
- -v /home/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf \
- -v /home/mysql/data:/var/lib/mysql \
- --privileged=true \
- -e MYSQL_ROOT_PASSWORD=root \
- -d \
- mysql:8.0.26
Linux 假设为Centos7
MySQL :: Download MySQL Community Server (Archived Versions)
使用FTP上传到Linux某一目录
- mkdir mysql
-
- tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql
- cd mysql
-
- rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
-
- rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
-
- rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
-
- rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
-
- yum install openssl-devel
-
- rpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpm
-
- rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
-
- rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
- systemctl start mysqld
-
- systemctl restart mysqld
-
- systemctl stop mysqld
grep 'temporary password' /var/log/mysqld.log
命令行执行指令 :
mysql -u root -p
然后输入上述查询到的自动生成的密码, 完成登录 .
登录到MySQL之后,需要将自动生成的不便记忆的密码修改了,修改成自己熟悉的便于记忆的密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
执行上述的SQL会报错,原因是因为设置的密码太简单,密码复杂度不够。我们可以设置密码的复杂度为简单类型,密码长度为4。
- set global validate_password.policy = 0;
- set global validate_password.length = 4;
降低密码的校验规则之后,再次执行上述修改密码的指令。
默认的root用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个root账户,用户远程访问
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
grant all on *.* to 'root'@'%';
mysql -u root -p