下载镜像
docker pull mysql:5.7
mkdir -p /root/mysql/data /root/mysql/logs /root/mysql/conf
创建mysql配置
[mysql]
default-character-set=UTF8MB4
[mysqld]
port=3306
max_connections=200
max_connect_errors=10
default_authentication_plugin=mysql_native_password
character-set-server=UTF8MB4
explicit_defaults_for_timestamp=true
default-storage-engine=INNODB
wait_timeout=60
interactive-timeout=600
secure_file_priv=/var/lib/mysql
[client]
default-character-set=UTF8MB4
bind-address = 0.0.0.0
启动容器
docker run -p 3306:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root --restart=always -d mysql:5.7
修改数据库密码
docker exec -ti mysql -u root -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('newpassword') WHERE User='root';
FLUSH PRIVILEGES;
授权远程连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
重启容器