Linux Docker 安装Mysql

首先安装docker,这里不做过多介绍


#查看docker版本
docker --version
#启动
systemctl start docker
systemctl restart docker

#搜索mysql镜像
docker search mysql
docker pull mysql:latest
#查看镜像
docker images

启动:
docker run -itd \
--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 mysql

# -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
# MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。

#进入MySQL:
docker ps
docker exec -it a469eb1589e bash
#查看mysql版本:
mysql --version
#登录mysql
mysql -uroot -p
#查看数据库:
show databases;



#MySQL的安全设置
# 登录mysql
mysql -u root -p

# 修改root账号的密码,不同版本修改密码的SQL语句是不一样的
ALTER USER 'root'@'localhost' IDENTIFIED BY '456789';

# 添加远程登录用户
CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '456789';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';

# 刷新权限
# flush privileges;
FLUSH PRIVILEGES;

# 增加root用户的远程连接权限并指定密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '456789';
# 更新权限
flush privileges;


## 解决认证插件错误
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '456789';
flush privileges;

#一般到这里就可以链接了
#因为现在是新版本8.0了 ,老版本的修改密码的语法已不再适用,mysql 5.7.9以后废弃了password字段和password()函数;
#新版本的密码修改可以通过如下命令操作:
use mysql;
ALTER user 'root'@'localhost' IDENTIFIED BY 'newpassward'

#-- 注意,这里的密码要用包含8位大写+小写+特殊字符+数字的密码
ALTER user 'root'@'%' IDENTIFIED BY 'shenma@521'
FLUSH PRIVILEGES;


指定配置文件和数据存放位置

#创建本机数据和配置,日志等文件夹
mkdir -vp /server/mysql
cd /server/mysql
mkdir data logs conf

#复制配置文件
docker cp mysql-test:/etc/mysql /server/mysql/conf
#复制data文件
docker cp mysql-test:/var/lib/mysql /server/mysql/data

#停止并删除容器
docker stop mysql-test
docker rm -f mysql-test

#重新启动容器
docker run  -d  -p 3306:3306 \
--name mysql \
--privileged=true \
--restart=unless-stopped \
-v /server/mysql/conf/mysql/conf.d:/etc/mysql/conf.d \
-v /server/mysql/logs:/var/log/mysql \
-v /server/mysql/data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:latest


点赞1
点击评论0
收藏0
浏览 48
 

还没有评论,快来发表第一个评论吧

免责声明:凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,注册用户和一般页面游览者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任(包括侵权责任、合同责任和其它责任)
*尊重作者,转载请注明出处!