一、下载
1.进入到 MySQL 官网下载自己对应版本的MySQL
二、配置环境
1、安装前检查
1.1、检查系统是否有自带安装MySQL
rpm -qa | grep mysql
如果有类似于
mysql-libs-5.1.52-1.el6_0.1.x86_64
可以选择进行卸载:
// 普通删除模式
rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64
// 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64
1.2、检查是否存在 MariaDB 数据库:
rpm -qa | grep mariadb
如果有类似于
mariadb-libs-5.5.56-2.el7.x86_64
选择进行卸载:
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
2、进入安装包所在目录,解压文件
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
3、将解压好的文件夹移动到自己要安装的目录下并重新命名
mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28
cp -R mysql-5.7.28 /home/mysql-5.7.28
4、添加系统 MySQL 组合 MySQL 用户
4.1、检查 MySQL 组合用户是否存在,存在则无需创建
cat /etc/group | grep mysql
#类似
mysql:x:490:
cat /etc/passwd | grep mysql
#类似
mysql:x:496:490::/home/mysql:/bin/bash
4.2、如不存在则创建用户组
groupadd mysql
useradd -r -g mysql mysql
三、安装数据库
1、创建 data 目录
cd /home/mysql-5.7.28
mkdir data
2、修改安装目录权限
chown -R mysql:mysql /home/mysql-5.7.28
3、创建 my.cnf 文件
cd support-files
vi my.cnf
文件内容如下:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
basedir = /home/mysql-5.7.28
datadir = /home/mysql-5.7.28/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
log-error = /home/mysql-5.7.28/data/mysqld.log
pid-file = /home/mysql-5.7.28/data/mysqld.pid
4、拷贝my.cnf文件到/etc目录下,如果提示是否覆盖,y
cp my.cnf /etc/my.cnf
5、初始化 mysqld
./bin/mysqld --initialize --user=mysql --basedir=/home/mysql-5.7.28/ --datadir=/home/mysql-5.7.28/data/
如果这里报错如下:
./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
则需要安装 numactl
yum -y install numactl
然后继续执行初始化mysqld命令
./bin/mysqld --initialize --user=mysql --basedir=/home/mysql-5.7.28/ --datadir=/home/mysql-5.7.28/data/
6、初始化完成之后查看日志
tail -1000f /home/mysql-5.7.28/data/mysqld.log
自动生成的临时密码
2019-12-19T07:37:27.636655Z 1 [Note] A temporary password is generated for root@localhost: ebHONnAD:6(o
7、设置开机自起MySQL服务
7.1、创建systemctl管理mysql的配置文件命令:
touch /usr/lib/systemd/system/mysql.service
7.2、编辑该配置文件命令
vi /usr/lib/systemd/system/mysql.service
7.3、以下内容添加到配置文件中
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
# 此处注意mysql安装目录
ExecStart=/home/mysql-5.7.28/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
7.4、启动 MySQL 服务
systemctl start mysql
7.5、查看MySQL服务状态:
ps -ef | grep mysql
7.6、通过systemctl 来设置mysql开机启动命令:
systemctl enable mysql
8、环境变量配置
vim /etc/profile
#最后一行添加:
export PATH=$JAVA_HOME/bin:/usr/local/mysql/bin:$PATH
#使修改生效:
source /etc/profile
9、登录 MySQL,密码为初始密码(如我的是:ebHONnAD:6(o)
cd /home/mysql-5.7.28
./bin/mysql -u root -p
10、修改密码
mysql> set password=password('123456');
mysql> grant all privileges on *.* to root@'%' identified by '123456';
mysql> flush privileges;
11、Mysql创建用户与授权,限制IP
11.1、创建用户
# CREATE USER ‘用户名’@‘限制的IP地址’ IDENTIFIED BY ‘密码’;
CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';
11.2、授权
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
#GRANT ALL ON *.* TO 'pig'@'%';
FLUSH PRIVILEGES; #不重启MySQL服务的情况下直接生效
#privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
#databasename:数据库名
#tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
11.3、设置与更改用户密码
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
11.4、撤销用户权限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
11.5、删除用户
DROP USER 'username'@'host';
11.6、限制ip访问
use mysql;
update user set host = '172.0.0.1' where user = 'root' and host = '%';
FLUSH PRIVILEGES;
12、数据库导入(自己备份.sql文件)
mysql> create database lutw;
mysql> use lutw;
mysql> source /home/lutw.sql;