如果内网或者断网环境,提前下载好文件
https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
若果公网环境
[root@localhost ~]# cd /root
[root@localhost ~]# wget https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.35-linux-glibc2.5-x86\_64.tar.gz
[root@localhost ~]# ll mysql-5.6.35-linux-glibc2.5-x86\_64.tar.gz
-rw-r--r--. 1 root root 314581668 2月 6 14:37 mysql-5.6.35-linux-glibc2.5-x86\_64.tar.gz
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd mysql -r -g mysql
# 验证用户组和用户
[root@localhost ~]# id mysql
uid=498(mysql) gid=501(mysql) 组=501(mysql)
[root@localhost ~]# mkdir /home/mysql/{program,data,conf} -p
[root@localhost~]#mkdir/home/mysql/data/mysqldata1/{mydata,sock,tmpdir,log,innodb\_ts,innodb\_log,undo,slowlog, binlog,relaylog} -p
# 查看创建目录结果
[root@localhost ~]# tree /home/mysql/ #如果没有这个命令,就使用yum install tree -y 安装
/home/mysql/
├—— conf
├—— data
| └—— mysqldata1
| ├—— binlog
| ├—— innodb\_log
| ├—— innodb\_ts
| ├—— log
| ├—— mydata
| ├—— slowlog
| ├—— sock
| ├—— tmpdir
| └—— undo
| └—— relaylog
└—— program
13 directories, 0 files
[root@localhost ~]# cd /root
[root@localhost ~]# tar xf mysql-5.6.35-linux-glibc2.5-x86\_64.tar.gz -C/home/mysql/\program/
[root@localhost ~]# chown mysql.mysql /home/mysql -R
# 查看datadir关键目录的权限是否正确
[root@localhost ~]# ll /home/mysql/data/mysqldata1/
总用量 36
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 binlog
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 innodb\_log
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 innodb\_ts
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 log
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 mydata
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 slowlog
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 sock
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 tmpdir
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 undo
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:07 relaylog
[root@localhost ~]# ln -s\
/home/mysql/program/mysql-5.6.35-linux-glibc2.5-x86\_64 /usr/local/mysql
# 查看basedir关键程序目录是否可用
[root@localhost ~]# ll /usr/local/mysql/
总用量 68
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:05 bin
-rw-r--r-- 1 mysql mysql 17987 11月 28 21:36 COPYING
drwxr-xr-x 3 mysql mysql 4096 2月 12 23:04 data
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:05 docs
drwxr-xr-x 3 mysql mysql 4096 2月 12 23:05 include
drwxr-xr-x 3 mysql mysql 4096 2月 12 23:04 lib
drwxr-xr-x 4 mysql mysql 4096 2月 12 23:05 man
drwxr-xr-x 10 mysql mysql 4096 2月 12 23:05 mysql-test
-rw-r--r-- 1 mysql mysql 2496 11月 28 21:36 README
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:04 scripts
drwxr-xr-x 28 mysql mysql 4096 2月 12 23:04 share
drwxr-xr-x 4 mysql mysql 4096 2月 12 23:05 sql-bench
drwxr-xr-x 2 mysql mysql 4096 2月 12 23:04 support-files
[root@localhost ~]# export PATH=$PATH:/usr/local/mysql/bin/
[root@localhost ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin/' >> /etc/profile
# 查看环境变量配置是否成功添加到/etc/profile文件中
[root@localhost ~]# tail -1 /etc/profile
export PATH=$PATH:/usr/local/mysql/bin/
[root@localhost ~]# cp -ar /usr/local/mysql/support-files/my-default.cnf /home/mysql/conf/my.cnf
[root@localhost ~]# ln -s /home/mysql/conf/my.cnf /etc/my.cnf
# my.cnf配置文件内容如下
[root@localhost ~]# vim /home/mysql/conf/my.cnf
[client]
socket=/home/mysql/data/mysqldata1/sock/mysql.sock # sock文件所在路径
[mysqld]
user=mysql
basedir = /usr/local/mysql
socket=/home/mysql/data/mysqldata1/sock/mysql.sock # sock文件所在路径
pid-file=/home/mysql/data/mysqldata1/sock/mysql.pid # pid文件所在路径
datadir=/home/mysql/data/mysqldata1/mydata # 数据文件路径
tmpdir=/home/mysql/data/mysqldata1/tmpdir # 存放临时文件的路径
log-error=/home/mysql/data/mysqldata1/log/error.log
slow\_query\_log
slow\_query\_log\_file=/home/mysql/data/mysqldata1/slowlog/slow-query.log
log-bin=/home/mysql/data/mysqldata1/binlog/mysql-bin
relay-log=/home/mysql/data/mysqldata1/relaylog/mysql-relay-bin
innodb\_data\_home\_dir = /home/mysql/data/mysqldata1/innodb\_ts
innodb\_log\_group\_home\_dir = /home/mysql/data/mysqldata1/innodb\_log
innodb\_undo\_directory = /home/mysql/data/mysqldata1/undo/
# 使用该选项初始化时会在错误日志中写一个随机的root密码,初始化完成之后在错误日志中搜索password
[root@localhost mysql]# mysqld --defaults-file=/etc/my.cnf --initialize
#使用该选项初始化时不会产生随机密码,而是像MySQL 5.7之前的版本一样,初始化完成之后,第一次登录数据库使用空的root密码
[root@localhost mysql]# mysqld --defaults-file=/etc/my.cnf --initialize-insecure
[root@localhost mysql]# cp -ar /usr/local/mysql/support-files/mysql.server /etc/init.d/\mysqld
[root@localhost mysql]# chmod +x /etc/init.d/mysqld
# 查看/etc/init.d/mysqld是否被成功赋予执行权限
[root@localhost mysql]# ll /etc/init.d/mysqld
-rwxr-xr-x 1 mysql mysql 10875 11月 28 23:32 /etc/init.d/mysqld
[root@localhost mysql]# service mysqld start
Starting MySQL.. [确定]
# 查看进程和端口
[root@localhost mysql]# ps aux |grep mysqld
root 10475 0.0 0.0 11472 1384 pts/2 S 23:37 0:00 /bin/sh /usr/local/mysql/bin/mysqld\_safe --datadir=/home/mysql/data/mysqldata1/mydata --pid-file=/home/mysql/data/mysqldata1/sock/mysql.pid
mysql 10743 0.0 24.21078428464964 pts/2 Sl 23:37 0:00 /usr/local/mysql/bin/mysqld--basedir=/usr/local/mysql --datadir=/home/ mysql/ data/mysqldata1/mydata --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/home/mysql/data/mysqldata1/log/error.log --pid-file=/home/mysql/data/mysqldata1/sock/mysql.pid
--socket=/home/mysql/data/mysqldata1/sock/mysql.sock
root 10791 0.0 0.0103256 860 pts/2 S+ 23:46 0:00 grep mysqld
[root@localhost mysql]# netstat -ntupl |grep mysqld
tcp 0 0 :::3306 :::* LISTEN 10743/mysqld
# 查看错误日志 日志这儿文件名可能不同需要看的在目录下看一下文件名
[root@localhost mysql]# vim /home/mysql/data/mysqldata1/log/error.log
# 注意:日志中不能出现ERROR错误,看到最后一行输出版本号和socket信息就表示MySQL启动成功
Version: '5.6.35-log' socket: '/home/mysql/data/mysqldata1/sock/mysql. sock' port:3306 MySQL Community Server(GPL)
[root@localhost mysql]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.35-log MySQL Community Server(GPL)
Copyright(c)2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help; ' or '\h' for help. Type '\c' to clear the current input statement.
# 查看当前登录用户
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set(0.00 sec)
# 查看当前MySQL版本是否正确
mysql> select version();
+------------+
| version() |
+------------+
| 5.6.35-log |
+------------+
1 row in set(0.00 sec)
mysql> select user, host from mysql.user;
+------+------------------------+
| user | host |
+------+------------------------+
| root | 127.0.0.1 |
| root | ::1 |
| | localhost |
| root | localhost |
| | localhost.localdomain |
| root | localhost.localdomain |
+------+------------------------+
6 rows in set(0.00 sec)
mysql> delete from mysql.user where user! ='root' or host! ='localhost';
Query OK, 5 rows affected(0.01 sec)
## 如果是MySQL 5.7.x 较新的版本或者8.0.x版本,则删除操作需要排除几个系统用户
mysql>DELETE FROM mysql.user WHERE user NOT IN('mysql.sys', 'mysql.session', 'mysqlxsys', 'root', 'mysql.infoschema')OR host NOT IN('localhost');
# 查看删除结果是否正确
mysql> select user, host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | localhost |
+------+-----------+
1 row in set(0.00 sec)
mysql> set password for 'root'@'localhost' = PASSWORD('admin'); # 在 MySQL 5.7.x 版本中可以不需要PASSWORD函数,直接使用明文密码也可以自动转换为加密格式密码写入mysql.user表中,且该用法将在后续版本中移除
Query OK, 0 rows affected(0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected(0.00 sec)
mysql>
# 重新使用新密码登录MySQL
[root@localhost mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.35-log MySQL Community Server(GPL)
Copyright(c)2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help; ' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information\_schema |
| mysql |
| performance\_schema |
| test |
+--------------------+
4 rows in set(0.00 sec)
mysql> drop database test;
Query OK, 0 rows affected(0.00 sec)
# 查看删除结果是否正确
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information\_schema |
| mysql |
| performance\_schema |
+--------------------+
3 rows in set(0.00 sec)
mysql> select * from mysql.db\G # MySQL 5.7.x版本移除了test库之后,该库的权限也没有了,但增加了sys库,有对应的sys库的默认权限,所以5.7.x版本忽略清理该表
*************************** 1. row ***************************
Host: %
Db: test
User:
Select\_priv: Y
Insert\_priv: Y
Update\_priv: Y
Delete\_priv: Y
Create\_priv: Y
Drop\_priv: Y
Grant\_priv: N
References\_priv: Y
Index\_priv: Y
Alter\_priv: Y
Create\_tmp\_table\_priv: Y
Lock\_tables\_priv: Y
Create\_view\_priv: Y
Show\_view\_priv: Y
Create\_routine\_priv: Y
Alter\_routine\_priv: N
Execute\_priv: N
Event\_priv: Y
Trigger\_priv: Y
*************************** 2. row ***************************
Host: %
Db: test\\_%
User:
Select\_priv: Y
Insert\_priv: Y
Update\_priv: Y
Delete\_priv: Y
Create\_priv: Y
Drop\_priv: Y
Grant\_priv: N
References\_priv: Y
Index\_priv: Y
Alter\_priv: Y
Create\_tmp\_table\_priv: Y
Lock\_tables\_priv: Y
Create\_view\_priv: Y
Show\_view\_priv: Y
Create\_routine\_priv: Y
Alter\_routine\_priv: N
Execute\_priv: N
Event\_priv: Y
Trigger\_priv: Y
2 rows in set(0.00 sec)
mysql> truncate mysql.db;
Query OK, 0 rows affected(0.00 sec)
## 如果是MySQL 5.7.x 较新的版本或者8.0.x版本,则清理操作需要排除几个系统用户
mysql>DELETE FROM mysql.db where user NOT IN('mysql.sys', 'mysql.session', 'mysqlxsys', 'root', 'mysql.infoschema')OR host NOT IN('localhost');
# 查看清理结果是否正确
mysql> select * from mysql.db\G
Empty set(0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected(0.00 sec)
mysql>
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。