MySQL从服务器上增加从服务器
云服务器上搭建MySQL环境并且设置不同权限的远程访问用户
一、CentOS7.6下安装docker
更新源yum -y update
安装dockeryum -y install docker
启动docker、 设置开机自启systemctl start docker
systemctl enable docker
查看docker版本docker info
二、使用docker 安装mysql8.0
下载mysql8.0镜像docker pull mysql:8.0
查看镜像docker images
创建挂载目录mkdir -p /data/mysql8/conf
mkdir -p /data/mysql8/data
mkdir -p /data/mysql8/logs
创建my.cnf文件,放在 /data/mysql/conf 目录中,注意配置文件中的端口号、字符集、时区,由于这里我还并不太会设置my.cnf,此处忽略创建并启动容器,请合理参考docker run -d --name mysql8 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /data/mysql8/data:/var/lib/mysql \
-v /data/mysql8/logs:/var/log/mysql \
-p 53306:3306 \
--restart=unless-stopped \
mysql:8.0
参数解释:
-
-d:让容器在后台运行
-
--name:将容器要命名成什么
-
-p:映射宿docke端口号到宿主机端口号 左:宿主机端口号 右:docker端口号
-
-e MYSQL_ROOT_PASSWORD=:设置root用户密码
-
-v :挂载点 左边为挂载宿主机目录 右边为容器目录
- --restart:指定容器自动重启的策略。
-
unless-stopped:容器被启动后,只要不是被手动停止,就会一直自动重启。
-
always:容器退出时总是自动重启。即使容器在正常情况下已经手动停止,也会自动重启。
-
on-failure[:max-retries]:若容器退出状态非0,则自动重启,最多重启max-retries次(该参数为可选参数,默认值为5)。如果max-retries被设置为0,则无限次地自动重启容器。
-
no:永远不重启容器
进入容器:docker exec -it 容器id /bin/basheg:docker exec -it 00c1820f12ef /bin/bash进入mysql: mysql -uroot -p,然后输入密码三、设置不同访问权限的远程访问用户
此处我重新跑了一个新的mysql8的容器
进入容器docker exec -it 788b531e4441 /bin/bash
进入mysqlmysql -uroot -p
之后输入密码
一些简单的操作,查看可登陆用户名和对应匹配的主机# 列出所有数据库的列表
SHOW databases;
#显示指定数据库的所有表,前提已经使用use选择了操作的数据库
USE mysql;
SHOW TABLES;
#查询用户表中可登录用户名和匹配的主机
SELECT User,Host from user;
发现有一个root用户,可登录主机%,即任何来源均可。由于我设置的密码为123456非常简单,我们需要删除这个用户。创建其他特定权限的用户,增加数据库安全性,让root权限用户只允许在服务器上本机登入。
删除该用户:
DROP USER 'root'@'%';
创建一个用于测试的数据库datespase_testCREATE DATABASE datespase_test;
创建用户ettian,可登录主机来源为%CREATE USER 'ettian'@'%' IDENTIFIED BY 'test_password';
test_password为该用户的密码
赋予datespase_test数据库下的所有权限grant all privileges on datespase_test.* to 'ettian'@'%';
刷新权限flush privileges;
使用Navicat连接,记得在服务器的防火墙打开对应的端口号。由于我容器映射的本机端口号为53307,此图中我写成了3306,所以连接不上,编辑连接,改为53307即可