1.环境
系统:centos8.1
使用用户:root
docker:20.10.24
docker-compose: 1.29.2
mysql: 8.0.18
2.安装步骤
2.1 新建挂载目录
# 选择自己的软件安装目录,新建挂载文件目录
mkdir data logs mysql-files conf
# 赋予权限、这里我自己用为了方便直接设置了777,如果你要求安全,请不要如此设置,
# 需根据挂载文件要求的权限放开对应的读、写或执行权限即可
chmod 777 data logs mysql-files
2.2 配置my.cnf
# 跳转到config目录
cd conf
# 配置my.cnf
vi my.cnf
# 复制以下配置保存即可
[mysqld]
user=mysql
bind-address = 0.0.0.0 # 表示允许任何主机登陆MySQL
port=3306 # 表示MySQL运行端口为3306
default-storage-engine=INNODB
#character-set-server=utf8
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
secure-file-priv=
[client]
#utf8mb4字符集可以存储emoji表情字符
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
2.3.docker-coompose配置
version: "3"
services:
mysql:
image: mysql:8.0.18
container_name: mysql8
restart: always
environment:
MYSQL_ROOT_PASSWORD: your password
ports:
- "3306:3306"
command:
--default-authentication-plugin=mysql_native_password
--lower_case_table_names=1
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
volumes:
- /etc/localtime:/etc/localtime
- ./data:/var/lib/mysql
- ./conf/my.cnf:/etc/mysql/my.cnf
- ./logs:/var/log/mysql
- ./mysql-files:/var/lib/mysql-files
启动mysql容器(在docker-compose.yml目录)
docker-compose up -d
查看是否启动成功
docker ps
如图所示即为成功
若启动失败,可用如下命令排查问题
docker-compose logs -f
3.修改root密码和开启root远程访问
# 进入mysql容器
docker exec -it mysql容器ID /bin/sh
# 登录mysql
mysql -u root -p
# 提示输入密码,直接enter即可
# 使用mysql数据库
use mysql;
# 查询mysql账户表信息
select host, user, authentication_string, plugin from user;
# 修改host可以远程访问
UPDATE mysql.user SET Host='%'WHER EUser='root'AND Host='localhost';
# 刷新权限
FLUSH PRIVILEGES;
# 修改root密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your password';
# 刷新权限
FLUSH PRIVILEGES;
# 退出mysql,退出容器
exit;
# 重启mysql容器
docker-compose restart;
# 此时rott账号可以远程访问了