Centos7部署MySQL5.7

Centos7部署MySQL5.7

文章目录

  • Centos7部署MySQL5.7
      • 一.彻底卸载系统原装的MySQL
        • 1.查找mysql进程
        • 2.卸载mysql
        • 3.删除mysql目录和文件
      • 二.采用yum源安装MySQL5.7
        • 1.设置yum源为阿里源
        • 2.下载并配置rpm安装包
      • 三.初始化配置
        • 1.本地登录并修改密码
        • 2.修改密码策略和默认编码
        • 3.用户远程登录配置
      • 四.其他常用操作
        • 1.创建新用户
        • 2.忘记root密码
        • 3.主从复制配置
          • Master的配置
          • Slave的配置

一.彻底卸载系统原装的MySQL

1.查找mysql进程

如果查到的结果不为空,则进入第2步卸载mysql

rpm -qa|grep -i mysql

2.卸载mysql

#停止mysql服务
systemctl stop mysqld

#删除软件命令
rpm -e –nodeps 包名

#如果上面命令提示依赖包错误,则使用以下命令尝试:
rpm -ev 包名 --nodeps

#如果还报错:error: %preun(xxxxxx) scriptlet failed, exit status 1,则用以下命令尝试:
rpm -e --noscripts 包名

#最终再使用rpm -qa|grep -i mysql命令,查询不到结果则证明mysql已卸载

3.删除mysql目录和文件

#删除卸载后残留的mysql的目录
find / -name mysql    #然后使用 rm -rf 将查询到的目录全部删除


#删除残留的mysql的配置文件
rm -rf /etc/my.cnf
rm -rf /etc/my.cnf.d

二.采用yum源安装MySQL5.7

1.设置yum源为阿里源

使用阿里的镜像源安装MySQL时下载速度比较快

#1.备份原镜像文件,便于后期恢复
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.backup

#2.下载阿里云的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

#3. 清除缓存
yum clean all

#4. 生成缓存
yum makecache

2.下载并配置rpm安装包

在MySQL官网中可以找到YUM源rpm安装包:

https://dev.mysql.com/downloads/repo/yum/

Centos7部署MySQL5.7_第1张图片

下载rpm包,并安装

mkdir -p /baicdt/softwares/mysql_rpm
cd /baicdt/softwares/mysql_rpm

#1.下载rpm包
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

#2.安装myaql源
yum localinstall -y mysql80-community-release-el7-3.noarch.rpm

#3.检查MySQL源是否安装成功,此时查到的安装包的版本都是mysql5.8版本的
yum repolist enabled | grep "mysql.*-community.*"

在这里插入图片描述

修改yum源配置文件,获取自己想要安装的mysql5.7版本

vim /etc/yum.repos.d/mysql-community.repo

需要编辑的内容参考下图,enabled等于1表示选择本版本

Centos7部署MySQL5.7_第2张图片

#5.检查MySQL源是否选择的是5.7版本,此时查到的安装包的版本都是mysql5.7版本的
yum repolist enabled | grep "mysql.*-community.*"

在这里插入图片描述

安装mysql

#下载速度较慢,需等待一段时间
yum -y install mysql-community-server

启动mysql服务

#1.临时启动mysql服务
systemctl start mysqld

#2.开机启动mysql服务
systemctl enable mysqld

#3.查看MySQL的启动状态
systemctl status mysqld

#4.查看mysql进程是否正常开启
ps -le | grep mysqld

三.初始化配置

1.本地登录并修改密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过以下命令找到密码:

grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述

-- 登录MySQL,使用刚才找到的密码
mysql -u root -p

-- 修改root用户密码(二选一)
set password for 'root'@'localhost'=password('Wsygzgr_2020');
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Wsygzgr_2020';

2.修改密码策略和默认编码

vim /etc/my.cnf   

在配置文件中添加下面的内容:

#因为服务器是测试环境,为了方便记mysql密码,关闭了密码策略。如果是生产环境,则不建议修改密码策略
validate_password=off

character_set_server=utf8
init_connect='SET NAMES utf8'

重新启动mysql服务使配置生效:

systemctl restart mysqld

#重新设置mysql密码为123456
mysql -u root -pWsygzgr_2020

修改root用户密码

set password for 'root'@'localhost'=password('123456');

MySQL默认配置文件路径:

  • 配置文件: /etc/my.cnf

  • 日志文件: /var/log//var/log/mysqld.log

  • 服务启动脚本: /usr/lib/systemd/system/mysqld.service

  • socket文件: /var/run/mysqld/mysqld.pid

3.用户远程登录配置

mysql默认只允许root帐户在本地登录,想要远程连接mysql,必须开启root用户允许远程连接,或者添加一个允许远程连接的帐户。

开启root用户远程连接(任意IP都可以访问)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;

扩展:

指定特定的IP,开启root用户远程连接

GRANT ALL PRIVILEGES ON . TO 'root'@'指定的IP' IDENTIFIED BY 'root用户的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;

一般为了安全起见,会创建专用的远程访问用户

GRANT ALL PRIVILEGES ON *.* TO 'dadeity'@'%' IDENTIFIED BY 'daDeity@163.com' WITH GRANT OPTION;
FLUSH PRIVILEGES;

四.其他常用操作

1.创建新用户

-- 创建新用户
CREATE USER '新用户名'@'%'IDENTIFIED BY '设置新用户的密码';
-- 把数据库的访问权限给新用户
GRANT ALL PRIVILEGES ON 数据库名.* TO '用户名'@'%' IDENTIFIED BY '密码'; 
-- 给新用户开启所有远程访问权限
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
-- 刷新mysql的权限列表            
FLUSH PRIVILEGES;  

2.忘记root密码

在/etc/my.cnf文件[mysqld]下面加如下命令

vim /etc/my.cnf

配置如下内容

skip-grant-tables

登陆mysql并改改密码

mysql  -u root
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE USER='root' AND HOST = 'localhost';

FLUSH PRIVILEGES

设置好密码后再删掉/etc/my.cnf中的skip-grant-tables配置

3.主从复制配置

安装环境:

主(Master) centos7:192.168.52.100

从(Slave) centos7:192.168.52.110

Master的配置
vim /etc/my.cnf

配置的内容为:

#主节点开启二进制日志功能
log-bin=mysql-bin
#标识唯一id(必须),一般使用ip最后位
server-id=100
#不需要同步的数据库,可设置多个
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
#指定需要同步的数据库,可以设置多个
binlog-do-db=test
binlog-do-db=demo

修改完配置,重启mysql

systemctl restart mysqld
#进入Mysql
mysql -u root -p123456

    赋予从库权限帐号,允许用户在主库上读取日志,赋予192.168.52.110也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

GRANT FILE ON *.* TO 'root'@'192.168.52.110' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.52.110' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

重启Mysql后查看主库信息

show master status;

Centos7部署MySQL5.7_第3张图片

    这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。
    另外:如果执行这个步骤始终为Empty set(0.00 sec),那说明前面的my.cnf没配置对。

Slave的配置
vim /etc/my.cnf

配置的内容为:

#主节点开启二进制日志功能
log-bin=mysql-bin
#标识唯一id(必须),一般使用ip最后位
server-id=110

#指定不需要复制的数据库(与主节点binlog-ignore-db要一一对应)
replicate-ignore-db=information_schema
replicate-ignore-db=mysql

#指定需要同步的数据库(与主节点binlog-ignore-db要一一对应)
replicate-do-db=test
replicate-do-db=demo

#此选项告诉从属服务器将其SQL线程执行的更新记录到其自己的二进制日志中。
log-slave-updates
#跳过所有错误
slave-skip-errors=all
slave-net-timeout=60

修改完配置,重启mysql

systemctl restart mysqld
#进入Mysql
mysql -u root -p123456
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='192.168.52.100',MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=154;
-- 开启Slave
START SLAVE; 

    在这里指定Master的信息,master_log_file是在配置Master的时候的File选项, master_log_pos是在配置Master的Position 选项,这里要进行对应。

查看配置的信息:

SHOW SLAVE STATUS \G;

当查询结果中包含下面两行结果,则表示配置成功了

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

对主库做增删改操作,验证从库数据同步情况。

你可能感兴趣的:(Centos7与大数据集群)