CentOS7使用yum从国内镜像源安装MySQL
-
安装前的准备工作
首先先检测自己的环境,是否存在系统自带的mariadb 和MySQL,如果存在需要进行停止相应服务。
ps ajx | grep mariadb ps ajx | grep mysql
输出如下,则不存在系统自带的mariadb 和MySQL
[root@localhost ~]# ps ajx | grep mariadb 137192 137949 137948 137192 pts/1 137948 S+ 0 0:00 grep --color=auto mariadb [root@localhost ~]# ps ajx | grep mysql 137192 137951 137950 137192 pts/1 137950 S+ 0 0:00 grep --color=auto mysql
否则,需要先使用下述命令将相关服务关停:
systemctl stop mariadb.service //停⽌mariadb服务 systemctl stop mysqld //停⽌mysql服务
之后需要检查mysql、mariadb安装包是否存在:
rpm -qa | grep mariadb rpm -qa | grep mysql
如果输出为空,则不存在相关的安装包,否则需要使用
yum -y remove 软件名
卸载每个输出的与mariadb或mysql相关的安装包。此外,mysql卸载完成之后,需备份 /etc/my.cnf数据,文件可能存在或者不存在,存在则对文件进行重命名即可,不存在不用处理。之后即可开始正式安装MySQL。
-
下载并安装MySQL5.7的yum源
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm yum localinstall -y mysql57-community-release-el7-7.noarch.rpm
-
使用清华源替换官方源
# 1. 备份yum-mysql的配置文件 cp /etc/yum.repos.d/mysql-community.repo /etc/yum.repos.d/mysql-community.repo.bak # 2. 编辑yum-mysql配置文件,替换原镜像为国内清华源的镜像 vim /etc/yum.repos.d/mysql-community.repo
找到配置文件中
[mysql57-community]
的相关信息,将baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
替换为
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
保存并退出,先执行
yum clean all
清理旧的yum配置,再执行yum makecache
将安装包进行缓存。 -
为了避免“GPG 密钥”的BUG,执行如下命令
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
-
安装MySQL5.7数据库
yum install -y mysql-community-server
-
启动MySQL并设置开机自启
执行下述代码,先启用mysql相关服务,之后启动mysql相关服务,再查看Mysql相关服务的运行状态:
systemctl enable mysqld && systemctl start mysqld && systemctl status mysqld
如果成功启动和启用,则会输出如下信息:
● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since 五 2023-12-15 09:30:52 CST; 29min ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 137584 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 137525 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 137586 (mysqld) Tasks: 28 CGroup: /system.slice/mysqld.service └─137586 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
存在第3行中的
Active: active (runnin)
即成功启用和启动Mysql相关服务。 -
设置MySQL安全向导查看初始的临时密码:
grep 'temporary password' /var/log/mysqld.log
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log 2023-12-15T01:30:49.058873Z 1 [Note] A temporary password is generated for root@localhost: iS33jTky9=)Q
-
使用临时密码连接MySQL数据库
[root@tesla03 ~]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.44 Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
如上述代码块所示,第一行输入
mysql -uroot -p
连接数据库,此时命令行终端会提示Enter password:
,如第二行所示,键入上一步骤中得到的临时密码即可顺利登入。如果使用临时密码登录多次都无法成功,一种解决方案是将其视为忘记了mysql数据库的密码,设置跳过密码验证连接,登入mysql终端后修改命令,可参考笔者的另一篇博客:CentOS7遗忘MySQL密码怎么操作。
-
连接成功后在MySQL命令行终端修改密码
mysql> set password for 'root'@'localhost'=password('MySQL5.7'); Query OK, 0 rows affected, 1 warning (0.00 sec)
上述代码块中
set password for 'root'@'localhost'=password('MySQL5.7');
即为修改代码的命令,执行成功时会返回Query OK, 0 rows affected, 1 warning (0.00 sec)
的提示。此处我们指定的密码是MySQL5.7
,读者替换password('')
设置自己的密码即可。 -
授予root用户远程连接的权限
grant all privileges on *.* to 'root' @'%' identified by 'MySQL5.7';
-
保存设置,退出MySQL命令行终端即可
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye
自此,CentOS7配置MySQL成功。
本博客参考资料如下: