前言:上篇文章安装好了JDK,接下来想到需要数据库服务,以前用的都是mysql,所以安装mysql5.7。因为linux7以后系统中默认会有mariadb-libs服务,依赖于mysql,看着有点不习惯,所以首先删除掉
-
安装前的清理工作:
①. 清理原有的mysql数据库;rpm -qa|grep mysql
根据结果删除软件
yum remove xxxx
②. 删除mysql的配置文件
find / -name mysql
rm –rf xxxx
③. 删除MariaDB的文件,
rpm -pa|grep mariadb
rpm -e xxxx
强制删除
rpm -e --nodeps xxxx
执行完后就将原来有的mysql 和mariadb数据库删除了;
-
安装mysql5.7(源码包安装)
①. 下载源码压缩包wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
提醒:如linux系统没有联网,也可将上述网址复制到本地下载,下载完成后传输到linux系统中
②. 将mysql安装到/usr/local/mysql下
解压tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
移动
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/
重命名
mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
③. 新建data目录(因为5.7版本没有data目录,需要手动创建)
mkdir /usr/local/mysql/data
④. 新建mysql用户、mysql用户组
mysql用户组groupadd mysql
mysql用户
useradd mysql -g mysql
⑤. 将/usr/local/mysql的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql
⑥. 配置
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
提醒:如出现如下错误
2019-10-17 10:25:30 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize 2019-10-17 10:25:30 [ERROR] Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32 2019-10-17 10:25:31 [ERROR] Failed to execute /usr/local/mysql/bin/mysqld --bootstrap --datadir=/usr/local/mysql/data --lc-messages-dir=/usr/local/mysql/share --lc-messages=en_US --basedir=/usr/local/mysql -- server log begin -- -- server log end --
则使用以下命令:
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
运行以上代码出现如下错误
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
则使用以下命令:
yum -y install numactl
结束后继续执行一下代码:
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
代码执行完毕后,会出现密码最后一行为你的密码:如下
[root@VM_0_14_centos mysql_5.7]# /usr/local/mysql/mysql_5.7/bin/mysqld --user=mysql --basedir=/usr/local/mysql/mysql_5.7 --datadir=/usr/local/mysql/mysql_5.7/data --initialize 2019-10-17T02:36:49.578917Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2019-10-17T02:36:50.532142Z 0 [Warning] InnoDB: New log files created, LSN=45790 2019-10-17T02:36:50.717776Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2019-10-17T02:36:50.788488Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f9271cfb-f086-11e9-9acc-52540033ab9e. 2019-10-17T02:36:50.792490Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2019-10-17T02:36:50.793008Z 1 [Note] A temporary password is generated for root@localhost: aNIAheOk.5J/
其中aNIAheOk.5J/为本次root用户的密码
-
开启服务
①. 将mysql加入服务cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
②. 开机自启
chkconfig mysql on
-
登录
/usr/local/mysql/bin/mysql -u root -p
会有输入密码,输入上方所得密码即可
-
允许远程
登录后发现想要修改user表中的host为%号时一直报如下错误ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
执行一下代码:
use mysql; alter user 'root'@'localhost' identified by 'root'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;