前言
这里使用docker进行学习。配置了docker-cn的镜像。
Mysql集群建立
使用下面的命令拉取mysql镜像
docker pull mysql
使用下面的命令建立一个master和一个slave
docker run --name mysql-master -P -d -e MYSQL_ROOT_PASSWORD=ln mysql
docker run --name mysql-slave1 -P -d -e MYSQL_ROOT_PASSWORD=ln mysql
其中-d是配置成为守护进程。-P暴露所有端口。设置root密码为ln。
使用下面命令分别进入两个docker中
docker exec -it mysql-master bash
docker exec -it mysql-slave1 bash
查看网卡ip。这里首先要安装net-tools,安装前要update,update前要换源
sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
apt updaet
apt install net-tools
输入ifconfig查看ip。
其中master是172.17.0.2,slave1是172.17.0.3
设置登录权限
在master中的mysql中按照如下步骤操作,首先登录,然后设置名称为root用户都可以无密码访问。
mysql -uroot -p
mysql> grant all privileges on *.* to root@'%' identified by '';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
在slave1中使用master的数据库,密码为空
mysql -uroot -p -h 172.17.0.2
在master中创建一个database
create database test_docker;
在slave1中查看该数据库是否存在。
show databases;
琐事
sql对大小写不敏感,SELECT与select是一样的。
sql语句后面最好加上分号。
use用于选择数据库。set用于设置值。
添加用户的方式使用create来添加。
然后授权用户使用数据库与表。
mysql -u root -p
Enter password:**
mysql> use mysql;
mysql> create user 'linanwx'@'%' identified by 'ln';
mysql> grant all on *.* to 'linanwx'@'%';
SHOW DATABASES用于展示当前数据库中的数据。
SHOW TABLES则用于展示当前的表。