Mysql
- 最好先建立共享网络
docker network create sqlNet
docker 中下载 mysql
docker pull mysql:8.0.20
启动mysql
docker run -p 15502:3306 -e MYSQL_ROOT_PASSWORD=mysql123456 --name mysql8.0.20 --net=sqlNet --network-alias -d mysql:8.0.20
拷贝配置文件
mkdir /data/docker/mysql8.0.20
docker cp mysql8.0.20:/etc/mysql /data/docker/mysql8.0.20
删除容器
docker stop mysql8.0.20
docker rm mysql8.0.20
启动脚本
cat>./mysql8.0.20.sh<<EOF
#!/bin/sh
docker run \
-p 15502:3306 \
--name mysql8.0.20 \
--privileged=true \
--restart unless-stopped \
-v /data/docker/mysql8.0.20/mysql:/etc/mysql \
-v /data/docker/mysql8.0.20/logs:/logs \
-v /data/docker/mysql8.0.20/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.20
EOF
命令解释:
-p 端口映射
--privileged=true 挂载文件权限设置
--restart unless-stopped 设置 开机后自动重启容器
-v /data/docker/mysql8.0.20/mysql:/etc/mysql 挂载配置文件
-v /data/docker/mysql8.0.20/logs:/logs \ 挂载日志
-v /data/docker/mysql8.0.20/data:/var/lib/mysql \ 挂载数据文件 持久化到主机,
-v /etc/localtime:/etc/localtime 容器时间与宿主机同步
-e MYSQL_ROOT_PASSWORD=123456 设置密码
-d mysql:8.0.20 后台启动,mysql
sh ./mysql8.0.20.sh
停止mysql
docker stop mysql8.0.20
启动 mysql
docker start mysql8.0.20
建立远程用户
docker exec -it mysql8.0.20 /bin/bash
mysql -uroot -p
# 1. 查询前,必须要修改密码,如新密码123456:
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '你的新密码';
#刷新权限
flush privileges;
# 首次改密推荐使用本地密码插件 mysql_native_password
use mysql;
select user,host,plugin,authentication_string from user;
# 创建用户任意远程访问
CREATE user 'root'@'%';
# 修改密码
alter user 'root'@'%' identified with mysql_native_password by '123456';
#给用户授权
grant all privileges on *.* to "root"@"%";
#刷新权限
flush privileges;
# 2. 更改具体用户远程访问
# 创建'root'@'127.0.0.1'用户
CREATE USER 'root'@'127.0.0.1' IDENTIFIED with mysql_native_password BY '123456';
#===> 记住刷新权限
flush privileges;
select user,host,plugin,authentication_string from user;
===============5.7以后===================
update user set authentication_string=password("test") where user='root';
update mysql.user set host='你要指定的主机ip' where user='root';
============以下5.7以前======================
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
select user,host,plugin,authentication_string from user;
============================================
# 退出mysql>
quit;或者exit;
#关闭mysql
shutdown;
# 修改MySQL用 户密码
mysqladmin -u用户名 -p旧密码 password 新密码
# 或进入mysql命令行
SET PASSWORD FOR '用户名'@'主机' = PASSWORD('密码');
flush privileges;