版本:
Linux系统:Centos 7
MySQL:mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
1. 检查删除系统已存在的mysql
1.1.检查是否已安装mysql
rpm -qa | grep mysql
1.2.安装之前,我们需要将centos自带的mariadb卸载,mariadb属于mysql的一个分支,若不卸载就直接安装的话会报错。
1.2.1.查看所有mariadb已安装的模块
rpm -qa | grep mariadb
1.2.3.进行卸载
rpm -e mariadb-libs-5.5.44-1.el7_1.x86_64
1.2.4.若提示有依赖包,卸载错误,则强制卸载:
rpm -e --nodeps mariadb-libs-5.5.44-1.el7_1.x86_64
2.解压缩
2.1.进入到压缩文件路径,解压到 /usr/local/目录下
tar zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
2.2.移动到上级目录(忽略)
mv mysql-5.7.19-linux-glibc2.12-x86_64 ../
2.3.修改文件名
mv mysql-5.7.19-linux-glibc2.12-x86_64/ mysql-5.7.19/
3.安全便利,创建一个操作数据库的专门用户
3.1.建立一个mysql的组
groupadd mysql
3.2.建立mysql用户,并且把用户放到mysql组 r参数表示mysql用户是系统用户,不可用于登录系统
useradd -r -g mysql mysql
3.3.给mysql用户设置一个密码,. (此处密码设置为"mysql")
passwd mysql
3.4.给目录/usr/local/mysql更改拥有者
chown -R mysql:mysql mysql-5.7.19/
4.修改配置文件
4.1. /etc/my.cnf
4.1.1.如果已存在则删除
rm -f /etc/my.cnf
4.1.2.my.cnf文件内容
# MySQL Info
[client]
#port=3306
#socket=/var/lib/mysql/mysql.sock
[mysql]
# 设置客户端默认字符集
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
#socket=/var/lib/mysql/mysql.sock
# 设置最大连接数
max_connections=200
# 设置服务端字符集
character-set-server=utf8
# 设置安装目录
basedir=/usr/local/mysql-5.7.19
# 设置数据存放目录
datadir=/usr/local/mysql-5.7.19/data
#设置3306端口
#port = .....
#server_id = .....
#禁用 密码检测插件
#validate_password = off
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 跳过登录密码
#skip password
#skip-grant-tables=1
[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#pid-file=/var/lib/mysql/mysqld.pid
centos7.4原始文件
4.2.创建所需文件夹(忽略)
[root@localhost local]# mkdir /var/lib/mysql
[root@localhost local]# chown -R mysql:mysql /var/lib/mysql/
[root@localhost local]# mkdir /var/log/mariadb
[root@localhost local]# chown -R mysql:mysql /var/log/mariadb
[root@localhost local]# touch /var/log/mariadb/mariadb.log
[root@localhost local]# mkdir /var/run/mariadb
[root@localhost local]# chown -R mysql:mysql /var/run/mariadb
5.初始化数据库
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.19 --datadir=/usr/local/mysql-5.7.19/data
暂时记住这个随机生成的登录密码
如果忘记可以使用下面命令找到
grep "password" /var/log/mysqld.log
这里可能会出现bug
使用下列命令查询(可忽略)
rpm -qa|grep libaio
安装
yum install -y libaio
6.给数据库加密(暂不处理, 忽略)
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.19/data
7.启动MySQL
./mysqld_safe --user=mysql &
这一步经常有错, 有可能是历史版本没删除干净, 导致启动的文件应用错误.
8.查看启动状态
ps -ef | grep mysql
9.登录mysql(登录密码为No.5生成的临时密码)
./mysql -u root -p
10.修改登录密码为"root"
ALTER USER USER() IDENTIFIED BY 'root';
11.添加远程登录用户
11.1.user=mysql password=mysql
GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY 'mysql' WITH GRANT OPTION;
11.2.刷新
FLUSH PRIVILEGES;
12.复制启动脚本到资源目录
12.1.将support-files/mysql.server 复制到 /etc/init.d/mysqld
cp support-files/mysql.server /etc/init.d/mysqld
12.2.修改/etc/init.d/mysql, 添加如下内容
basedir=/usr/local/mysql-5.7.19
datadir=/usr/local/mysql-5.7.19/data
12.3.增加mysqld服务控制脚本执行权限
chmod +x /etc/init.d/mysqld
12.4.测试:检验mysql 状态
13.配置环境变量
13.1.修改/etc/profile文件, 在最下面添加
# === mysql nvironment ===
export MYSQL_HOME=/usr/local/mysql-5.7.19
export PATH=$PATH:$MYSQL_HOME/bin
# ==================
13.2.使配置生效
source /etc/profile
14.防火墙添加端口
14.1.添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
14.2.重启防火墙
firewall-cmd --reload
14.3.查看防火墙开启的端口
firewall-cmd --zone=public --list-ports
15.添加开机启动
15.1.通过chkconfig添加 mysqld的名字为No.12中复制到/etc/init.d/mysqld的mysqld
chkconfig --add mysqld
15.2.检查mysqld服务是否已经生效
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止命令为:service mysqld start和service mysqld stop
15.3.重启机器测试
补充一个简易安装
cd /usr/local/
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql-server
service mysqld restart