在docker中安装mysql

首先,确认您已安装好docker。如果没有安装,可前往docker官方网站安装:https://docs.docker.com/engine/install/centos/

这里安装的mysql版本是8.0.25,其他版本请修改版本号。

# 拉取mysql8.0.25的docker镜像
docker pull mysql:8.0.25
# 创建映射的文件夹
mkdir -p /v/mysql/conf
mkdir -p /v/mysql/data
mkdir -p /v/mysql/mysql-files
mkdir -p /v/mysql/log
# 进入配置文件夹
cd /v/mysql/conf
# 新建一个 my.cnf 配置文件
touch my.cnf
# 编辑 my.cnf 文件
vi my.cnf

写入以下内容

[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# 数据库忽略大小写
lower_case_table_names = 1
#服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
collation_server = utf8mb4_general_ci
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

启动

docker run -d -p 3306:3306 \
--restart=always \
--privileged=true \
-v /v/mysql/log:/var/log/mysql \
-v /v/mysql/data:/var/lib/mysql \
-v /v/mysql/conf/my.cnf:/etc/mysql/my.cnf \
-v /v/mysql/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
--name mysql mysql:8.0.25

MYSQL_ROOT_PASSWORD=123456 设置默认密码为123456

查看日志

docker logs -f mysql

进入容器

docker exec -it mysql mysql -uroot -p

配置数据库允许远程访问

use mysql;
select host, user, plugin,  authentication_string, password_expired from user;
update user set host='%' where user='root';
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
exit