[root@node01 ~]# cat >> /etc/hosts <<EOF
192.168.1.101   node01
EOF

创建mysql用户
[root@node01 ~]# useradd mysql

修改mysql用户密码
[root@node01~]# echo mysql | passwd --stdin mysql 
Changing password for user mysql.
passwd: all authentication tokens updated successfully.

查询用户ID
[root@node01 ~]# id mysql
uid=1000(mysql) gid=1000(mysql) groups=1000(mysql)

调整用户对系统资源的使用限制
[root@node01 ~]# cat >> /etc/security/limits.conf <<EOF
mysql             soft    nofile         4096
mysql             hard    nofile         65535
EOF

调整系统内核参数
[root@node01 ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq 

[root@node01 ~]# echo "vm.swappiness = 10" >>/etc/sysctl.conf 
[root@node01 ~]# echo 'vm.dirty_background_ratio = 5' >>/etc/sysctl.conf 
[root@node01 ~]# echo 'vm.dirty_ratio = 10' >>/etc/sysctl.conf
[root@node01 ~]# sysctl -p 

安装相关的依赖包
[root@node01 ~]# yum install -y libaio

下载mysql5.6二进制包,解压到当前目录下
[root@node01 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
[root@node01 ~]$ tar zxvf mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz

创建数据库相关目录,修改相关目录权限
[root@node01 ~]$ mv mysql-5.6.45-linux-glibc2.12-x86_64 mysql
[root@node01 ~]# mv mysql /usr/local/
[root@node01 ~]# mkdir /usr/local/mysql/data
[root@node01 ~]# chown -R mysql:mysql /usr/local/mysql
[root@node01 ~]# mkdir /var/lib/mysql
[root@node01 ~]# chown -R mysql:mysql /var/lib/mysql
[root@node01 ~]# mkdir /var/lib/mysql-files
[root@node01 ~]# chown mysql:mysql /var/lib/mysql-files

修改系统环境变量:PATH
[root@node01 ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin'>>/etc/profile
[root@node01 ~]# source /etc/profile
[root@node01 ~]# env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

创建数据库参数文件
[root@node01 ~]# vim /etc/my.cnf
[mysqld]
user = mysql
port = 3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
secure_file_priv = /var/lib/mysql-files
log-error = mysqld_error.log
pid-file=mysqld.pid
character-set-server = utf8mb4
open-files-limit = 65535
max_connections = 500
max_connect_errors = 10000
max_allowed_packet = 32M
tmp_table_size = 512M
max_heap_table_size = 512M
slow_query_log = 1
long_query_time = 2
slow_query_log_file = mysqld_slow.log
server_id = 101
log_bin = mysql-bin
binlog_format = row
sync_binlog = 1
binlog_cache_size = 16M
max_binlog_cache_size = 4G
max_binlog_size = 128M
expire_logs_days = 7
binlog_rows_query_log_events = 1
innodb_buffer_pool_size = 8G
innodb_buffer_pool_instances = 8
innodb_log_file_size = 256M
innodb_log_files_in_group = 4
innodb_log_buffer_size = 16M
innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_data_file_path = ibdata1:1024M:autoextend

[mysql]
socket=/var/lib/mysql/mysql.sock
prompt=(\\u@\\h) >\\_

初始化数据库
[root@node01 ~]# cd /usr/local/mysql/scripts
[root@node01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

复制启动脚本到/etc/init.d目录
[root@node01 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/

启动mysql服务,并查看服务启动状态
[root@node01 ~]# /etc/init.d/mysql.server start
Starting MySQL.. SUCCESS! 
[root@node01 ~]# /etc/init.d/mysql.server status
 SUCCESS! MySQL running (27187)

数据库动态链接库
[root@node01 ~]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
[root@node01 ~]# ldconfig
[root@node01 ~]# ln -s /usr/local/mysql/include/ /usr/include/mysql

[root@node01 ~]# mysql_secure_installation
......
#为root用户设置密码
Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

#删除匿名用户
Remove anonymous users? [Y/n] y
 ... Success!

#禁止root远程登录
Disallow root login remotely? [Y/n] y
 ... Success!

#删除test数据库
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

#刷新权限表
Reload privilege tables now? [Y/n] y
 ... Success!
......

[root@node01 ~]# mysql -uroot -pabcd.1234
(root@localhost) > select version();
+------------+
| version()  |
+------------+
| 5.6.45-log |
+------------+
1 row in set (0.00 sec)

(root@localhost) > create user 'root'@'%' identified by 'abcd.1234'; #创建允许远程登录的root用户
Query OK, 0 rows affected (0.02 sec)

(root@localhost) > grant all privileges on *.* to 'root'@'%' with grant option; #授予用户权限
Query OK, 0 rows affected (0.01 sec)

(root@localhost) > flush privileges; #刷新权限
Query OK, 0 rows affected (0.02 sec)

(root@localhost) > show grants for 'root'@'%'; #查询用户的权限
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@%                                                                                                              |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*8E329B15E3C0FF9DDF7597B748CCE9473593BF60' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

[root@node01 ~]# mysql -uroot -pabcd.1234 -hnode01
(root@node01) >