0、MySql第零章,安装及集群配置

孤人 提交于 2020-10-15 07:17:08

MySql第零章,安装及集群配置

一、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主从复制

原理:

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
##根目录
basedir=/usr/local/mysql
##数据目录
datadir=/usr/local/mysql/data
##启用中继日志。
relay-log=mysql-relay

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

其他命令解析:

1、RESET MASTER
功能说明:删除所有的binglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。用于第一次进行搭建主从库
时,进行主库binlog初始化工作;

注意reset master 不同于purge binary log的两处地方
①. reset master 将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件 起始值从000001 开始,然而
purge binary log 命令并不会修改记录binlog的顺序的数值
②. reset master 不能用于有任何slave 正在运行的主从关系的主库。因为在slave 运行时刻 reset master 命令
不被支持,reset master 将master 的binlog从000001 开始记录,slave 记录的master log 则是reset 
master 时主库的最新的binlog,从库会报错无法找的指定的binlog文件。


2、RESET SLAVE
功能说明:用于删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件;

reset slave 将使slave 忘记主从复制关系的位置信息。该语句将被用于干净的启动, 它删除master.info文件和
relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。

使用reset slave之前必须使用stop slave 命令将复制进程停止。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!