docker安装mysql

Updated on with 0 views and 0 comments

拉取镜像

docker pull mysql:5.7.40

创建文件夹

sudo mkdir -p /opt/docker_data/mysql/5.7.40/{conf,data,log}
sudo chmod -R 755 /opt/docker_data/mysql/5.7.40

创建配置文件

vi /opt/docker_data/mysql/5.7.40/conf/custom.cnf

内容如下

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
# 字符集配置
init_connect="SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake

# 网络与解析
skip-name-resolve
explicit_defaults_for_timestamp=true

# 表名大小写
lower_case_table_names=1

# SQL模式(MySQL 5.7适用)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# InnoDB配置优化
innodb_buffer_pool_size = 128M
innodb_log_file_size = 64M
innodb_flush_log_at_trx_commit = 2

# 连接配置
max_connections = 200
wait_timeout = 600
interactive_timeout = 600

# 通用配置
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
bind-address = 0.0.0.0

运行容器

docker run --name mysql_5.7.40 \
  -v /opt/docker_data/mysql/5.7.40/log:/var/log/mysql \
  -v /opt/docker_data/mysql/5.7.40/data:/var/lib/mysql \
  -v /opt/docker_data/mysql/5.7.40/conf:/etc/mysql/conf.d \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -d mysql:5.7.40

MySQL登录权限配置

安装完成后直接登录会提示错误

image.png

先进入容器

docker exec -it mysql_5.7.40 /bin/bash

连接mysql

mysql -u root -p

查询当前用户

SELECT user, host FROM mysql.user WHERE user = 'root';

结果如下

image.png

这里如果没有user=root和host=%的用户,则运行如下命令

CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

如果有的话直接执行

GRANT ALL PRIVILEGES ON . TO 'root'@'%' WITH GRANT OPTION;

再刷新一下权限即可

FLUSH PRIVILEGES;

标题:docker安装mysql
作者:wenyl
地址:http://www.wenyoulong.com/articles/2020/05/14/1589444938088.html