基础环境准备
#系统版本CentOS 7#查看系统 glibc支持的版本strings /lib64/libc.so.6 |grep ^GLIBC#添加mysql用户id mysqluseradd -s /sbin/nologin -M mysql#下载wget下载工具yum -y install wget#卸载自带的MariaDB 5.5rpm -qa | grep mariadbyum -y remove mariadb-libs#安装依赖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='';
