一、前期准备
其实yum方式安装是可以不用删除mariadb的,
安装MySQL会覆盖掉之前已存在的mariadb
(一)检查MariaDB
shell> rpm -qa|grep mariadb
mariadb-server-5.5.60-1.el7_5.x86_64
mariadb-5.5.60-1.el7_5.x86_64
mariadb-libs-5.5.60-1.el7_5.x86_64
(二)删除MariaDB
如果不存在(上面检查结果返回空)则跳过步骤。
shell> rpm -e --nodeps mariadb-server
shell> rpm -e --nodeps mariadb
shell> rpm -e --nodeps mariadb-libs
(三) 删除已存在的MySQL
shell> rpm -qa|grep mysql
如果不存在则跳过下面这步。
shell> rpm -e --nodeps xxx
二、开始安装
下载地址:
https://dev.mysql.com/downloads/mysql/
(一)选择版本

(二)下载资源

(三)安装依赖
yum install libaio
(四)创建用户
不需要登录的一个系统账号,启动MySQL服务时会使用该账号
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
(五)解压并创建链接
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
shell> ln -s mysql-5.7.26-linux-glibc2.12-x86_64/ mysql
(六)创建mysql-files目录
这一步并不是必须的,可以设置secure_file_priv的值指向该目录(用于限制数据导入导出操作的目录)
shell> cd mysql
shell> mkdir mysql-files
shell> chown mysql:mysql mysql-files
shell> chmod 750 mysql-files
(七)初始化
shell> bin/mysqld --initialize --user=mysql
如果初始化时报错如下:
error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
是因为libnuma没有安装(或者默认安装的是32位),注意你的版本。
shell> yum install numactl.x86_64
执行完后重新初始化即可 初始化成功后返回结果中有一行包含初始密码,第一次登录时要用到它:
A temporary password is generated for root@localhost: 8M0ary878s*U
(八)启用SSL(非必须)
shell> bin/mysql_ssl_rsa_setup
(九)启动MySQL
shell> bin/mysqld_safe --user=mysql &
查看进程可以看到一些默认参数,可以在配置文件中修改这些参数:
shell> ps -ef | grep mysql
root 14604 12719 0 00:03 pts/0 00:00:00 /bin/sh bin/mysqld_safe --user=mysql
mysql 14674 14604 0 00:03 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=VM_2_24_centos.err --pid-file=VM_2_24_centos.pid
(十)设置环境变量
避免每次执行mysql命令都要加上路径,在/etc/profile中添加:
export PATH=$PATH:/usr/local/mysql/bin
(十一)设置为服务
shell> cp support-files/mysql.server /etc/init.d/mysqld
shell> service mysqld start|stop|restart|status
(十二)开机自启动
shell> chkconfig --add mysqld
shell> chkconfig --list mysqld
mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关