下载mysql
查看镜像 docker images
下载MySQL镜像 mysql/mysql-server:8.0
创建文件夹,创建配置文件和放数据文件 mkdir -p /data/mysql/{conf,,data}
创建配置文件 my.cnf
写入配置文件my.cnf的代码
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
创建mysql8.0容器
已启用端口 docker ps
进入MySQL docker exec -it mysql bash
将脚本放到工具中
建数据库
到数据
查看表
删除MySQL容器
远程连接
创建用户
授权给用户xmg grant all on shop.*to xmg@'%';
刷新数据库
重启mysqll容器
如果拒绝连接,检查一下防火墙是否关闭 systemctl status firewalld
如果防火墙是开着的,记得开放3306的端口,添加入站规则就可以了
连接来了,数据有了
环境配置
MySQL主从配置原理
1.master会将变动记录到二进制日志里面;
2.master有一个I/O线程将二进制日志发送到slave;
3.slave有一个I/O线程把master发送的二进制写入到relay日志里面;
4.slave有一个SQL线程,按照relay日志处理slave的数据;
注1:relay英文意思:接转,转送,转发
注2:主从配置原理可参考:images/01 MySQL主从配置原理图.jpg
新建主从目录
创建mysql-slave
docker run -itd -p 3391:3306 --name mys ql-master -v /data/mysql-master/conf/my.cnf:/etc/my.cnf -v / data/mysql-master/data:/var/lib/mysql --privileged=true --re start=always -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-se rver:5.7
进入容器
给用户授权
更新权限后,外部就可以使用native进行连接了
创建mysql-slave
进入容器
登录mysql服务器
给用户授权
更新权限后,外部就可以使用native进行连接了
配置MySQL主从复制
进入mysql-master容器
登陆主节点
查看主节点关键参数
进入slave节点,关联master节点
先进入mysql-slave容器
连接slave数据库,关联master节点
linux中使用命令导入导出数据
1.导出数据库
1.导出数据和表结构:
mysqldump -u 用户名 -p 密码 数据库名 > 数据库名.sql
mysqldump -u root -p dbname > dbname .sql
敲回车后会提示输入密码2.只导出表结构
mysqldump -u 用户名 -p 密码 -d 数据库名 > 数据库名.sql
mysqldump -u root -p -d dbname > dbname .sql
敲回车后会提示输入密码
2.导入数据库
1.首先建空数据库
mysql>create database dbname ;
2.导入数据库
方法一:
1.选择数据库
mysql>use dbname ;
2.设置数据库编码(可选)
mysql>set names utf8;
3.导入数据(注意sql文件的路径)
mysql>source /home/xxxx/dbname .sql;
方法二:
mysql -u 用户名 -p密码 数据库名 < 数据库名.sql