MySql第零章,安装及集群配置
1、RPM安装
RPM安装,无法自定义一些安装路径和配置文件路径
##以后再填坑
2、Generic安装
二进制 预编译 Generic,下载地址:
https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
[root@mysq|1 ~ ]# groupadd mysql
[root@mysql1 ~ ]# useradd -r -g mysql -s /bin/false mysql
[root@mysql1 ~ ]# cd /usr/local
[root@mysq|1 local]# tar -zxvf /opt/software/file/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
[root@mysq|1 local]# ln -s mysql-5.7.29-linux-glibc2.12-x86_64 mysql #超链接
1、mysql初始化
没有编译安装的过程
[root@mysq|1 local]# cd mysql
[root@mysql1 mysq|]# mkdir mysql-files
[root@mysql1 mysq|]# chmod 750 mysql-files
[ root@mysql1 mysql ]# chown -R mysql .
[root@mysql1 mysql]# chgrp -R mysql .
[root@mysql1 mysq|]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ##初始化目录,注意这里会产生一个 mysql password 要记住
[root@mysq|1 mysq|]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data ##公钥私钥
[root@mysql1 mysq|]# chown -R root .
[root@mysql1 mysq|]# chown -R mysql data mysql-files
2、创建配置文件
[root@mysql1 mysq|]# cp -rf support-files/my-default.cnf /etc/my.cnf
##如果没有my-default.cnf文件的话,直接在/etc下创建my.cnf文件
##填写内容如下:
##[mysqld]
##basedir=/usr/local/mysql
##datadir=/usr/local/mysql/data
3、将mysql命令存入path
[root@mysq|2 mysq|]# /usr/local/mysql/bin/mysql ##命令不管用
[root@mysql1 mysq|]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@mysq|1 mysq|]# source /etc/profile ##echo $PATH查看是否添加进去
4、启动mysql
方法一:使用mysqld_safe
[root@mysql1 mysq|]# bin/mysqld_safe --user=mysql &
方法二:使用mysql.service脚本启动[一般使用这个]
[root@mysq|1 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@mysq|1 mysq|]# chmod a+x /etc/init.d/mysqld
[root@mysq|1 mysq|]# chkconfig --add mysqld
[root@mysq|l1 mysq|]# chkconfig mysqld on ##设置开机启动
[root@mysq|1 mysq|]# service mysqld start ##启动mysql
##service mysqld start ##启动mysql
##service mysqld stop ##关闭mysql
##service mysqld restart ##重启mysql
##service mysqld status ##查看mysql状态
5、初始化修改密码
[root@mysql1 mysq|]# mysql -uroot -p ##密码为空
##如果登录不进去
##vi /etc/mysql.cnf
##添加
##skip-grant-tables
##重启mysql
[root@mysql1 mysq|]# use mysql
[root@mysql1 mysq|]# UPDATE user SET authentication_string=PASSWORD("admin123") where USER="root"; ##修改密码
或者
alter user root@"localhost" identified by "admin123";
[root@mysql1 mysq|]# FLUSH PRIVILEGES; ##刷新权限
6、远程访问权限
[root@mysql1 mysq|]# 重启mysql,用新密码登录后
[root@mysql1 mysq|]# grant all privileges on *.* to "root"@"% "identified by "admin123" with grant option; ##远程访问mysql
[root@mysql1 mysq|]# FLUSH PRIVILEGES; ##刷新权限
7、如果需要重新初始化mysql
[root@mysql1 ~]# killall mysqld
[root@mysql1 ~]# rm -rf /usr/local/mysql/data
[root@mysql1 mysql]# chown -R mysq| .
[root@mysql1 mysql]# chgrp -R mysql .
[root@mysql1 mysq|]# bin/mysqld -initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
[root@mysql1 mysq|]# bin/mysql_ssl_rsa_setup
[ root@mysql1 mysql ]# chown -R root .
[root@mysql1 mysql ]# chown -R mysql data mysql-files
遇到问题:
1、
bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法:
yum install -y libaio //安装后在初始化就OK了
或者
yum install -y libaio.so.1
2、killall no such file or directory
##没有命令的话
yum -y install killall
或
yum providers killall查看哪有killall的包,再 yum install 包
3、Source Code安装
源码包安装 Source Code
##以后再填坑
原理:
MySQL复制过程分成三步:
1 master将改变记录到二进制日志(binary log) 。这些记录过程叫做二 进制日志事件,binary log events
2 slave将master的binary log events拷贝到它的中继日志(relay log)
3 slave重做中继日志中的事件,将改变应用到自己的数据库中。MySQL复制是异步的且串行化的
1、单主单从
1.1、master设置
修改添加 /etc/my.cnf
[mysqld]
##主服务器唯一ID[必须]
server-id=1
##启用二进制日志binary log[主从必须]
##chown mysql.mysql /usr/local/mysql赋予权限
log-bin=mysql-bin
##根目录
basedir=/usr/local/mysql
##临时目录
tmpdir=/usr/local/mysql
##数据目录
datadir=/usr/local/mysql/data
##主机读写都可以:0
read-only=0
##设置不需要复制的数据库 mysql是出厂的默认库
binlog-ignore-db=mysql
##设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
master建立账户并授权复制权限给slave
##语法:GRANT REPLICATION SLAVE ON *.* TO "账号"@"从机IP" IDENTIFIED BY "admin123";
##授权
GRANT REPLICATION SLAVE ON *.* TO "ren"@"192.168.0.107" IDENTIFIED BY "admin123";
##刷新权限
flush privileges;
##查看主机状态 file要复制的二进制文件 position从哪开始复制
show master status;
1.2、slave设置
修改 /etc/my.cnf
[mysqld]
##主服务器唯一ID[必须]
server-id=2
##启用二进制日志binary log[主从必须]
##chown mysql.mysql /usr/local/mysql赋予权
log-bin=mysql-bin
##根目录
basedir=/usr/local/mysql
##临时目录
tmpdir=/usr/local/mysql
##数据目录
datadir=/usr/local/mysql/data
slave从机上配置需要复制的主机
##语法
## CHANGE MASTER TO MASTER_HOST="主机IP",MASTER_USER="ren",MASTER_PASSWORD="admin123",
## MASTER_LOG_FILE="file的名字",MASTER_LOG_POS=position数字;
##配置
CHANGE MASTER TO MASTER_HOST="192.168.0.111",
MASTER_USER="ren",MASTER_PASSWORD="admin123",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=341;
##启动从服务器复制功能
start slave;
##检测--下面两个参数都是YES,则说明主从配置成功
show slave statusG
##Slave_IO_Running : YES
##Slave_SQL_Running:YES
##############停止主从复制功能#################
stop slave