一、备份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)编辑/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
完成数据库的导入、还原工作。