三、ubuntu18 docker 安装 mysql:8.0.20

1、从容器cp配置文件到宿主机 /my/mysql/mysql/ 路径下

## 启动一个测试mysql
docker run --name mysql -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
## 进入容器查看
docker exec -it mysql /bin/bash
cd /etc/mysql/
## 从宿主机cp容器配置 
## 容器/etc/mysql/路径下配置文件(conf.d my.cnf my.cnf.fallback)
## 容器:容器路径   宿主机路径
docker cp mysql:/etc/mysql/ /my/mysql/

2、停掉并删除上一个mysql容器,新建并启动mysql容器

docker run \
-p 3306:3306 \
--name mysql \
--privileged=true \
--restart unless-stopped \
-v /my/mysql/mysql/my.cnf:/etc/mysql/my.cnf \
-v /my/mysql/logs:/logs \
-v /my/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=yourpassword \
-d mysql:8.0.20

## docker logs mysql  如果报错,提示没有权限读取xx文件
## 可以把上述命令参数 --privileged=true \ 去掉,删除容器,重新执行

3、mysql容器密码,远程登陆设置

## 重新进入容器
docker exec -it mysql /bin/bash
mysql -uroot -p
yourpassword 
# 由于mysql8.0默认的密码加密方式是 caching_sha2_password
# 而目前大多数人使用的navicat版本是不支持的
# 修改远程登录root密码, 可能use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
# 修改登录权限
grant all privileges on *.* to 'root'@'%' with grant option;
# 刷新数据库
flush privileges;
# 退出数据库
exit
# 退出容器
exit

4、配置文件修改最大连接数

## 在文件中加入max_connections=1024保存退出
vim  /my/mysql/mysql/my.cnf  
## 重启容器
docker restart mysql  

5、相关命令

## 查看最大连接数
show variables like '%max_connection%';
## 重新设置最大连接数
set global max_connections=1000;
## 查看连接信息
show status like 'Threads%';
## Threads_connected :这个数值指的是打开的连接数.
## Threads_running :这个数值指的是激活的连接数,这个数值一般远低于connected数值.
## Threads_connected 跟show processlist结果相同,表示当前连接数。
## 准确的来说,Threads_running是代表当前并发数查询数据库当前设置的最大连接数

你可能感兴趣的:(三、ubuntu18 docker 安装 mysql:8.0.20)