一、 相关软件版本状况
本文使用的华为弹性云服务器操作系统为centos 8.1,MySQL数据库为5.7.26。
二、 安装步骤
(一) 确认是否缺省安装了 mariadb
命令如下:
rpm -qa | grep -i mariadb
结果没有任何显示,表明没有安装。
(二) 安装环境更新,并安装依赖文件
指令:yum -y install wget或者yum update
安装依赖文件
1. MySQL的Server端需要perl语言的支持
执行命令安装,指令yum install perl -y
2. 按照 libaio
yum install libaio
否则,在执行如下安装指令时:
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm –force
会出现如下提示:Failed dependencies: libaio.so.1()(64bit) is needed by mysql-community-server-5.7.26-1.el7.x86_64
(三) 创建相关目录
1. 新建MySQL安装目录
在Home目录下创建如下目录:
Home/MySQL/MySQL-5.7.26
2.创建软件安装包存放目录
Home/Softwares
方便统一管理,减少系统垃圾产生,根据个人习惯设置。
3. 创建数据存储目录
如数据存储目录设置为:/home/MySQL/MySQL-5.7.26/Data
(四) 下载 MySQL Server 5.7.26 rpm bundle
(五) WinSCP链接华为云服务器
(六) 上传mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar并解压缩
上传文件至 Home/Softwares目录,并进行解压缩,指令如下:
cd /home
cd Softwares
ls
tar -vxf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
(七) 安装MySQL 5.7.26,进行初始化并启动MySQL服务
1.使用rpm命令按照如下顺序进行安装
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm --force
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm --force
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm --force
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm --force
使用rpm方式安装MySQL后相关路径如下:
数据库缺省目录
/var/lib/mysql/
配置文件
/usr/share/mysql (mysql.server命令及配置文件)
/etc/my.cnf
相关命令
/usr/bin(mysqladmin mysqldump等命令)
启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)
2. MySQL初始化
在此步骤,可以进行数据库缺省目录更改,如将数据存储目录设置为修改为:/home/MySQL/MySQL-5.7.26/Data
使用如下命令进行MySQL的初始化,执行后会在/var/log/mysqld.log文件中生成随机密码。
注:如果是以mysql身份运行,则可以去掉--user选项。
mysqld --initialize --user=mysql --datadir=/var/lib/mysql
mysqld --initialize --datadir=/home/MySQL/MySQL-5.7.26/Data
上述指令运行之后,随即在 \home\MySQL\MySQL-5.7.26\Data目录下生成若干文件。
变更MySQL的数据库目录的所属用户及其所属组,指令如下:
chown mysql:mysql /home/MySQL/MySQL-5.7.26/Data -R
3.启动MySQL服务
systemctl start mysqld.service
(八) 登录MySQL服务器端,修改初始秘密,设置访问用户权限
1.初始密码
有两种方式可以找到初始密码,一种是通过如下指令:
grep 'temporary password' /var/log/mysqld.log
一种方法是在mysqld.log文件(/var/log/mysqld.log)中找到初始缺省密码(例如本次安装初始缺省密码为:7ICtaf-Ixkkd)
2.登录MySQL服务器端
运行 firewall-cmd --state
如果防火墙未运行,则结果为 not running
运行 systemctl start firewalld
运行 firewall-cmd --zone=public --list-ports
mysql -u root -p
输入初始密码:7ICtaf-Ixkkd
3.修改初始缺省密码
set password for 'root'@'%'=password('Your Password');
flush privileges;
4.设置访问权限
grant all privileges on *.* to 'root' @'%' identified by ' Your Password ';
创建访问用户并设置权限
CREATE USER 'YourUserName'@'%' IDENTIFIED BY 'YourAccessCode';
grant all privileges on YourDBName.* to ' YourUserName '@'%' identified by ' YourAccessCode '。
(九) 解决时区设置问题
时区设置不同,时间日期类型数据在MySQL数据库中存储的数据格式存在一定的差异,而操作系统安装时一般会设置时区,程序运行通常会读取系统时间日期并存储,一般可能导致存储的时间日期数据格式与读取的系统时间日期数据格式不一致,导致程序运行错误或者达不到预期效果,因而要进行时区设置。
具体步骤如下:
1. 下载时区信息描述数据表(SQL文件)
至MySQL官方网站下述网址下载时区信息描述数据表(SQL文件),文件名为timezone_2020a_posix_sql.zip,然后将该文件解压(解压后的文件名称为timezone_posix.sql)至“MySQL安装路径+\data\mysql”目录下(本示例为“\home\MySQL\MySQL-5.7.26\Data\ mysql”),该文件主要用来操作时区数据表,最好和被操作的数据表放置在同一目录,否则根据MySQL指令运行时,会出现“Outfile disabled”错误信息,主要是因为包含被执行文件条目大于71)
时区信息描述数据表(SQL文件)下载网址:
https://dev.mysql.com/downloads/timezones.html。
2.登录MySQL并更新数据库
export PATH=/usr/bin:/usr/sbin:/bin:/sbin
至此,运行 mysql –u root –p登录mySQL
Use mysql
source /home/MySQL/MySQL-5.7.26/Data/ mysql/timezone_posix.sql(根据自己的实际位置修改)
退出MySQL
3.完成时区设置
service mysqld stop
service mysqld restart
然后登录MySQL后,执行以下命令:
SET GLOBAL time_zone = 'Asia/Shanghai';
SET SESSION time_zone = 'Asia/Shanghai';
SELECT @@global.time_zone,@@session.time_zone;
再次执行指令:mysql> select convert_tz ('2018-05-10 12:30:00', 'UTC','Asia/Shanghai');,结果如下: 1 row in set (0.00 sec)SELECT @@global.time_zone,@@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| Asia/Shanghai | Asia/Shanghai |
+--------------------+---------------------+
1 row in set (0.00 sec)
具体详见:https://www.solutionworks.cn/show-4.html。
以上为在华为云服务器(CentOS系统)安装MySQL 5.7.26的过程,如果某个过程存在错误,随时欢迎指正。