mysql安装

使用yum进行安装

1,打开网址:MySQL Yum储存库
找到对应linux的版本进行下载
查看自己的版本:

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)

2,下载和安装mysql源

[root@localhost ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

3,如果显示wget未找到命令,则需要先安装wget:

yum -y install wget

4,然后再次执行上面命令

[root@localhost ~]# sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

5,检查是否安装成功:
执行成功后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo及 mysql-community-source.repo

6,查看mysql相关资源

yum repolist enabled | grep "mysql.*-community.*"

在这里插入图片描述
7,使用命令:yum repolist all | grep mysql,查看当前yum repolist的所有版本
8,切换版本

[root@localhost ~] sudo yum-config-manager --disable mysql80-community
[root@localhost ~] sudo yum-config-manager --enable mysql57-community

9,安装mysql

[root@localhost ~]# sudo yum install mysql-community-server

该命令会安装MySQL服务器 (mysql-community-server) 及其所需的依赖、相关组件,包括mysql-community-client、mysql-community-common、mysql-community-libs等。安装时间会比较长

9.1 使用yum安装mysql 可能遇到错误 安装中遇到错误解决方式
错误:
mysql-community-libs-8.0.32-1.el7.x86_64.rpm 的公钥尚未安装
失败的软件包是:mysql-community-libs-8.0.32-1.el7.x86_64
GPG 密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
解决办法:
执行如下命令后再次安装:

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

10,启动

[root@localhost ~]# systemctl start mysqld.service
[root@localhost ~]# systemctl status mysqld.service

11,修改密码及登录
初始密码
MySQL第一次启动后会创建超级管理员账号root@localhost,初始密码存储在日志文件中:

[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2020-12-06T07:32:41.399112Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Nd<-p!Fxt6A8

12,修改默认密码

# 先进行登录
[root@localhost ~]# mysql -uroot -p
Enter password: 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 
#密码太弱

解决方法如下:

使用复杂密码,MySQL默认的密码策略是要包含数字、字母及特殊字符;
如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即validate_password_policy(以及validate_password_length等相关参数),使其支持简单密码的设定,具体方法可以参考:设置密码策略;
修改配置文件/etc/my.cnf,添加validate_password=OFF,保存并重启MySQL
修改报错后重启报错解决可参考:https://blog.csdn.net/aiyowei1106/article/details/88703746
————————————————
版权声明:本文为CSDN博主「笨菜先飞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41510551/article/details/110731610

13,设置编码

mysql> SHOW VARIABLES LIKE 'character%';

编辑/etc/my.cnf,[mysqld]节点增加以下代码

[mysqld]
character_set_server=utf8
init-connect='SET NAMES utf8'

14,设置开机启动

[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# systemctl daemon-reload

15,删除mysql mariadb

[root@localhost ~]# rpm -qa|grep mariadb

如无则跳过下面一条

删除mariadb

[root@localhost ~]# rpm -e --nodeps mariadb-server
[root@localhost ~]# rpm -e --nodeps mariadb
[root@localhost ~]# rpm -e --nodeps mariadb-libs

删除mysql

[root@localhost ~]# rpm -e --nodeps xxx

在这里插入图片描述
16,远程连接
远程连接时报错
在这里插入图片描述
原因 mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

解决:

#更改加密方式
mysql> alter user 'root'@'%' identified with mysql_native_password by 'password';

Query OK, 0 rows affected (0.01 sec)
#更新用户密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述
二:主从复制
1,修改主服务器master:

  #vi /etc/my.cnf
   [mysqld]
   log-bin=mysql-bin   //[必须]启用二进制日志
   server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP最后一段

2,修改从服务器slave:

   #vi /etc/my.cnf
   [mysqld]
   log-bin=mysql-bin   //[不是必须]启用二进制日志
   server-id=226      //[必须]服务器唯一ID,默认是1,一般取IP最后一段

3,重启两台服务器的mysql

service mysqld restart;

4,在主服务器上建立帐户并授权slave:

mysql>CREATE USER 'chengjun1'@'%' IDENTIFIED WITH mysql_native_password BY '&Chengjun123';
mysql>GRANT ALL on *.* to 'chengjun1'@'%';

“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。
5,登录主服务器的mysql,查询master的状态

   mysql>show master status;
   +------------------+----------+--------------+------------------+
   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
   +------------------+----------+--------------+------------------+
   | mysql-bin.000004 |      308 |              |                  |
   +------------------+----------+--------------+------------------+
   1 row in set (0.00 sec)

注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

6,配置从服务器Slave:

   mysql>change master to master_host='192.168.1.100',master_user='chengjun1',master_password='&Chengjun123',
         master_log_file='mysql-bin.000004',master_log_pos=308;   //注意不要断开,308数字前后无单引号。
   Mysql>start slave;    //启动从服务器复制功能

7,检查从服务器复制功能状态:

 mysql> show slave status\G

   *************************** 1. row ***************************

              Slave_IO_State: Waiting for master to send event
              Master_Host: 192.168.2.222  //主服务器地址
              Master_User: mysync   //授权帐户名,尽量避免使用root
              Master_Port: 3306    //数据库端口,部分版本没有此行
              Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
              Read_Master_Log_Pos: 600     //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
              Relay_Log_File: ddte-relay-bin.000003
              Relay_Log_Pos: 251
              Relay_Master_Log_File: mysql-bin.000004
              Slave_IO_Running: Yes    //此状态必须YES
              Slave_SQL_Running: Yes     //此状态必须YES
                    ......

注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

以上操作过程,主从服务器配置完成。

修改从服务配置时,先停掉复制功能。

stop slave;

修改后再次启动

start slave;    //启动从服务器复制功能
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐