CentOS7系统下重装或更新MySQL全攻略

一、备份MySQL数据库的数据

1、 首先以管理员方式登录MySQL数据库,然后查看服务器的数据库,命令如下:

Show databases;

查询显示结果如下:

Mysql> show databases
Database
Information_schema
Mysql
Performance_schema
Citysafe
4 rows in set(0.00 sec)

2、 备份上一步查询出的Citysafe数据库本文来自于广州地理信息网:http://www.gzgis.com

先输入quit命令退出mysql模式,然后输入备份数据库命令,命令如下:

[root@weixin]#mysqldump -u root -p Citysafe >/home/Citysafe.sql

根据提示界入数据库管理密码。

把Citysafe数据库备份到home目录下。

二、卸载旧版本MySQL软件

      在CentOS7系统(约等于linux系统)下重装或升级MySQL的方法其实就是将原来的安装的MySQL彻底的卸载,然后在安装新的版本。

1、 卸载旧版本的MySQL

      首先查看系统中已经安装的MySQL软件,命令如下;

rpm -qa|grep -i mysql

      在我的服务器上可以看到已经MySQL旧版本的安装如下所示:

[root@weixin]# rpm -qa|grep -i mysql
mysql-community-release-el7-5.noarch
mysql-community-common-5.6.39-2.el7.x86_64
mysql-community-client-5.6.39-2.el7.x86_64
mysql-community-devel-5.6.39-2.el7.x86_64
mysql-community-libs-5.6.39-2.el7.x86_64
mysql-community-server-5.6.39-2.el7.x86_64

2、 停止MySQL的服务

            停止MySQL的服务命令如下:

systemctl 
stop mysqld


3、 删除目前已经安装的MySQL软件

删除命令为:rpm -e 包名 --nodeps,具体如下:

[root@weixin]#rpm -e mysql-community-release-el7-5.noarch –nodeps
Preparing packages...
mysql-community-release-el7-5.noarch
[root@weixin]#rpm -e mysql-community-common-5.6.39-2.el7.x86_64 –nodeps
Preparing packages...
mysql-community-common-5.6.39-2.el7.x86_64
[root@weixin]#rpm -e mysql-community-client-5.6.39-2.el7.x86_64 –nodeps
Preparing packages...
mysql-community-client-5.6.39-2.el7.x86_64
[root@weixin]#rpm -e mysql-community-devel-5.6.39-2.el7.x86_64 –nodeps
Preparing packages...
mysql-community-devel-5.6.39-2.el7.x86_64
[root@weixin]#rpm -e mysql-community-libs-5.6.39-2.el7.x86_64 –nodeps
Preparing packages...
mysql-community-libs-5.6.39-2.el7.x86_64
[root@weixin]#rpm -e mysql-community-server-5.6.39-2.el7.x86_64 –nodeps
Preparing packages...
mysql-community-server-5.6.39-2.el7.x86_64

4、 查找已经安装版本MySQL的目录、并且删除老版本MySQL的文件和库

      查找已经安装的MySQL版本目录、文件及库的命令如下:

find /-name mysql

      我的服务器上的查找结果显示如下:

[root@weixin]# find /-name mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
/usr/share/mysql

 

     依次删除MySQL的安装目录,对应的删除命令如下所示:

rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql

     删除MySQL的主要目录后,卸载MySQL后/etc/my.cnf文件不会删除,需要单独手动删除,命令如下:

rm -rf /etc/my.cnf

5、 再次查找机器是否安装mysql

如果已经卸载清空,则无任何安装显示,查找命令如下:

rpm -qa|grep -i mysql

如果显示还有,则说明你第3步删除MySQL软件不彻底,重新进行删除操作。

三、安装新版本MySQL软件

1、 创建安装目录

在Centos中将账户切换到root账户下,进入local目录下,命令如下:

cd /usr/local

可以通过ls命令查看当前目录有的文件,在该目录下创建存放mysql安装文件的目录。

ls
mkdir mysql
ls

然后切换到mysql目录下,命令如下:

cd mysql

2、 下载MySQL

尽量安装高版本的MySQL,以避免各种漏洞风险,这里我安装的是MySQL8.0.16版本,下载MySQL的命令如下:

wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

3、 执行安装

执行安装的命令如下:

yum -y localinstall mysql80-community-release-el7-1.noarch.rpm

接下来安装mysql-community-release-el7-1.noarch.rpm包,输入如下指令:

sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm

最后安装mysql-server,命令如下:

sudo yum install mysql-server

安装过程比较简单,基本是无人值守,在某些提示需要输入Is this ok [y/d/N]这一步选择输入y,然后回车继续;这里下载时间可能会久一点,根据个人网络情况而定,遇到Is this ok [y/N]还是选择输入y,然后回车继续。

4、 MySQL的服务安装、启动

启动mysql命令:

systemctl start mysqld

开机启动命令:

systemctl enable mysqld  #设置开机重启
systemctl daemon-reload   #重新加载配置文件

5、 MySQL密码设置

获取默认密码,命令如下:本文来自于广州地理信息网:http://www.gzgis.com

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

可以生成一个随机的默认密码,可以用这个密码登录数据库;

修改密码,命令如下:

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码(包含大小写、数字和特殊字符)';

      这里密码设置要求严格,否则会报错;

      如果觉得密码过于复杂,可以修改限制参数,查看限制参数命令

SHOW VARIABLES LIKE 'validate_password%';

  修改命令:

set global validate_password.length=4;
set global validate_password.policy=LOW;

      等等,具体要修改哪些,根据自己的需求来定

  • validate_password_length  固定密码的总长度;

  • validate_password_dictionary_file 指定密码验证的文件路径;

  • validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;

  • validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;

  • validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;

6、 授权远程登陆

创建用户:

CREATE USER 'root'@'%' IDENTIFIED BY '上面设置的密码';

授权:

GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;

7、 更新root密码

这里需要更新root密码,否则连接数据库时会报2058错误;

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '上面设置的密码';

8、 端口设置

查看端口:

show global variables like 'port';

可以看到相应的端口号:

图片1.png

修改端口:

     1)编辑/etc/my.cnf文件  [root@localhost ~]# vi /etc/my.cnf

     2)添加port=2032;

     3)重启mysql [root@localhost ~]# /etc/init.d/mysqld restart

四、安装过程中的常见问题

1、 mariadb未删除导致的冲突问题

报错信息如下:

Error: Package: akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda)
Requires: mariadb-server
Removing: 1:mariadb-server-5.5.52-1.el7.x86_64 (@anaconda)
mariadb-server = 1:5.5.52-1.el7
Obsoleted By: mysql-community-server-5.7.19-1.el7.x86_64 (mysql57-community)
Not found

此原因为CentOS中默认安装有MariaDB,所以如果我们不删除MariaDB文件的话,安装mysql时可能会发生冲突。

使用rpm 命令查找出要删除的mariadb文件,命令如下:

rpm -pa | grep mariadb

可能出现结果:

mariadb-libs-5.5.56-2.el7.x86_64

删除上面的程序

yum -y remove mariadb-libs.x86_64

mariadb就删除了,重新安装MySQL即可。

2、 安装MySQL过程中postfix has missing相关报错

报错信息如下:

Warning: RPMDB altered outside of yum.
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
glibc-utils-2.17-55.el6.x86_64 has missing requires of libgd.so.2()(64bit)
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
2:postfix-2.6.6-2.2.el6_1.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)

这种类似的提示是指MySQL的安装缺少某些依赖项,可以去pkgs.org网站上下载并安装相关依赖项即可,此网站是linux系统的一个相关网站,里面都是相关依赖项、插件、程序等,wget下载程序后yum install安装即可。

其它具体问题可联系微信号chenfengfx。

五、还原MySQL数据库的数据

首先cd 命令进入数据库文件存储的目录,然后输入以下命令:

[root@weixin]#mysqldump -u root -p Citysafe< Citysafe.sql

完成数据库的导入、还原工作。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

粤ICP备19141338号,Copyright Your gzgis.com Rights Reserved.