Docker安装Mysql
mysql版本
查看开发环境中mysql版本 :select version();安装时版本尽量保证一致,最低要求大版本要一致
docker 拉取mysql镜像
docker pull mysql:8.0.36
docker启动mysql容器
docker run -d \ # 创建并运行一个容器,-d是让容器在后台运行--name mysql \ # 给容器起个名字,必须唯一-p 3306:3306 \ # 设置端口映射-e MYSQL_ROOT_PASSWORD=xxxx \ # 设置密码-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/conf:/etc/mysql/conf.d \--restart=always \ # 当重启Docker时会自动启动该容器-d mysql:8.0.36
查看docker启动的容器:docker ps -a
配置mysql
修改/mydata/mysql/conf/my.cnf 配置文件
vi /mydata/mysql/conf/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve# Esc
# :wq
重启mysql使配置生效 docker restart mysql
连接测试
注意:服务器要开放3306端口,如果还无法连接可能是mysql用户无法远程登录。解决办法:
docker exec -it mysql8.0 /bin/bash
cd /usr/bin
/usr/bin# mysql -u root -p
use mysql;
update user set host='%' where user='root';
授权MySql远程访问;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
注:exec docker进入容器命令 -it 容器中服务别名 /bin/bash 表示命令行模式 与 -d 后台守护进行模式启动 形成两种运行方式