基础环境准备

  1. #系统版本
  2. CentOS 7
  3. #查看系统 glibc支持的版本
  4. strings /lib64/libc.so.6 |grep ^GLIBC
  5. #添加mysql用户
  6. id mysql
  7. useradd -s /sbin/nologin -M mysql
  8. #下载wget下载工具
  9. yum -y install wget
  10. #卸载自带的MariaDB 5.5
  11. rpm -qa | grep mariadb
  12. yum -y remove mariadb-libs
  13. #安装依赖
  14. yum -y install autoconf libaio-devel

1、下载安装包

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
# 校验MD5值与下载页对比
md5sum mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz
tar -zxf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz

2、安装MySQL软件

#创建目录结构,授权
mkdir -p /data/app
mkdir -p /data/3306/data
mkdir -p /data/3306/logs
mv /root/mysql-5.6.48-linux-glibc2.12-x86_64 /data/app/mysql5648
chown -R mysql.mysql /data
ll -d /data

#添加环境变量
vim /etc/profile
export PATH=/data/app/mysql5648/bin:$PATH

#刷新环境变量配置并检验
source /etc/profile
mysql -V

#显示此信息代表MySQL软件安装完成
mysql  Ver 14.14 Distrib 5.6.48, for linux-glibc2.12 (x86_64) using  EditLine wrapper

3、初始化数据目录

初始化目的: 创建系统库

/data/app/mysql5648/scripts/mysql_install_db --user=mysql  --basedir=/data/app/mysql5648  --datadir=/data/3306/data

#缺少autoconf依赖报错
FATAL ERROR: please install the following Perl modules before executing /data/app/mysql5648/scripts/mysql_install_db:
Data::Dumper
#解决办法
yum -y install autoconf

#缺少libaio依赖报错
Installing MySQL system tables.../data/app/mysql5648/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
#解决办法
yum -y install libaio-devel

4、编写配置文件

cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql5648
datadir=/data/3306/data
port=3306
socket=/tmp/mysql.sock
server_id=6
log_bin=/data/3306/logs/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1

[client]
socket=/tmp/mysql.sock
EOF

5、准备启动脚本

cp -a /data/app/mysql5648/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
/etc/init.d/mysqld stop

6、使用systemd管理mysql

cat > /etc/systemd/system/mysql.service  <<EOF
[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
ExecStart=/data/app/mysql5648/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF

#启动和开机自启mysql
systemctl enable mysql
systemctl start mysql
systemctl status mysql
systemctl list-unit-files | grep mysql

7、设置用户密码

#输入mysql命令,进入到mysql命令提示符
mysql

#设置root管理员用户密码(只能本机登录)
update mysql.user set password=password("123") where user="root";

#创建admin用户,所有库,所有表,远程访问权限
create user 'admin'@'%' identified by '123';
mysql> grant all on *.* to 'admin'@'%';

#刷新权限表
flush privileges;

#查看用户列表
select host,user,plugin from mysql.user;

#退出
exit

#测试连接
#本地访问
mysql -uroot -p123
#远程访问
mysql -uadmin -p123 -h 192.168.10.14 -P 3306

8、5.6匿名用户问题

#安装完MySQL以后会自动创建一个root用户和一个匿名用户
mysql> select user, host from user;
+------+-----------------------+
| user | host                  |
+------+-----------------------+
| root | 127.0.0.1             |
|      | localhost             |
| root | localhost             |
|      | localhost.localdomain |
| root | localhost.localdomain |
+------+-----------------------+

#删除匿名用户
delete from mysql.user where user='';