安装mysql8
mysql数据文件和配置文件挂载在镜像外。
[root@iZ7xv4chuiq5jw5ofra7fzZ ~]# docker pull mysql:8.0.27
[root@iZ7xv4chuiq5jw5ofra7fzZ ~]# docker run -itd --name mysql \
--privileged=true \
-p 3306:3306 \
-v /data/docker/mysql/log:/logs \
-v /data/docker/mysql/data:/var/lib/mysql \
-v /data/docker/mysql/conf.d:/etc/mysql/conf.d \
-v /data/docker/mysql/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0.27 \
--character-set-server=utf8mb4 \
--lower_case_table_names=1
character-set-server
: mysql编码
lower_case_table_names
: 0
mysql数据库表大小写不敏感
配置文件
[root@iZ7xv4chuiq5jw5ofra7fzZ mysql]# pwd
/data/docker/mysql/conf.d
[root@iZ7xv4chuiq5jw5ofra7fzZ mysql]# ls
mysql.cnf
[root@iZ7xv4chuiq5jw5ofra7fzZ mysql]# cat my.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
[root@iZ7xv4chuiq5jw5ofra7fzZ mysql]# cd conf.d/
[root@iZ7xv4chuiq5jw5ofra7fzZ conf.d]# cat mysql.cnf
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
#skip-grant-tables 免密登录mysql
#mysql_native_password----mysql caching_sha2_password
default_authentication_plugin=mysql_native_password
数据库客户端连接报错
mysql8 默认加密模式:mysql caching_sha2_password
mysql> use mysql;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.01 sec)
mysql> select host, user, plugin from user;
+-----------+------------------+-----------------------+
| host | user | plugin |
+-----------+------------------+-----------------------+
| % | root | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session | caching_sha2_password |
| localhost | mysql.sys | caching_sha2_password |
| localhost | root | mysql_native_password |
+-----------+------------------+-----------------------+