docker启动mysql8
使用docker启动 MySQL8.0
因为mysql8对登录密码的加密方式做了调整,所以每次安装完mysql都要去翻翻教程,特此记录下,方便以后查看
docker 启动脚本
#! /bin/bash
docker rm -f mysql8
docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=123456 -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -p 3306:3306 -d mysql
这里我没有挂在配置文件 需要的自行百度 一般场景使用 就这样就可以了
启动后进入容器
docker exec -it mysql8 /bin/bash
mysql -uroot -p123456
use mysql;
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
退出容器后重启
ctrl + D
docker restart mysql8
新版本8.0.36
命令
mkdir -p /mydata/mysql8.0.36/conf mkdir -p /mydata/mysql8.0.36/logs mkdir -p /mydata/mysql8.0.36/data docker run \ --restart=always \ --privileged=true \ --name mysql \ -v /mydata/mysql8.0.36/conf:/etc/mysql8.0.36 \ -v /mydata/mysql8.0.36/logs:/var/log/mysql8.0.36 \ -v /mydata/mysql8.0.36/data:/var/lib/mysql8.0.36 \ -p 5202:3306 \ -e MYSQL_ROOT_PASSWORD=xxxxx \ -d mysql:8.0.36
my.conf
#MySQL客户端的默认字符集 [client] default-character-set=utf8 #MySQL命令行客户端的默认字符集 [mysql] default-character-set=utf8mb4 [mysqld] #设置为 '+8:00' 表示服务器时区为东八区 default-time_zone = '+8:00' #语句设置连接的排序规则为 utf8_unicode_ci;语句设置连接的字符集为 utf8 init_connect='SET collation_connection=utf8_unicode_ci' init_connect='SET NAMES utf8' #MySQL服务器使用的默认字符集设置为 utf8;服务器使用的默认排序规则设置为 utf8_unicode_ci。 character-set-server=utf8 collation-server=utf8_unicode_ci #客户端和服务器之间的字符集设置不一致时,MySQL服务器将不会与客户端进行字符集握手协商 skip-character-set-client-handshake #提高性能,避免域名dns解析 skip-name-resolve