MySQL-5.7.17 二进制安装
二进制安装相对于源码包安装的优势在于方便快捷,解压后无需编译,对于MySQL的安装,推荐使用二进制安装的方式,而5.6和5.7的安装步骤稍有不同,本文基于MySQL5.7.17的官方GA版本进行安装。
安装环境
- Red Hat Enterprise Linux Server release 6.5(64位)
- 4核
- 2G内存
安装前准备
- Linux网络配置完成
- ip地址
- 子网掩码
- 主机名
- /etc/hosts文件配置完成(将访问这个数据库的ip地址和主机名字也添加到hosts文件中,主从服务器解析也要添加到hosts文件中)
- /etc/resolv.conf文件(确认里面的nameserver能够使用)
- 查看最近的系统日志中是否有报错
-
1
[root@rhel-6 ~]# tail -100f /var/log/messages
-
- 配置本地yum源
-
1
[root@rhel-6 ~]# mkdir /yum
2[root@rhel-6 ~]# mount /dev/cdrom /yum
3[root@rhel-6 ~]# echo " mount /dev/cdrom /yum">>/etc/rc.local
4[root@rhel-6 ~]# mkdir /etc/yum.repos.d/bak
5[root@rhel-6 ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
6[root@rhel-6 ~]# vim /etc/yum.repos.d/local.repo
7
-
- 删除低版本的MySQL
-
1
[root@rhel-6 ~]# yum remove mysql*
-
- 关闭selinux服务(一定要关闭)
- 先临时关闭
-
1
[root@rhel-6 ~]# setenforce 0
- 再永久关闭
-
1
[root@rhel-6 ~]# vim /etc/selinux/config(将对应行的enforcing改为disable)
2
- 关闭防火墙(最好关闭)
- 先临时关闭
-
1
[root@rhel-6 ~]# iptables -F
- 再永久关闭
-
1
[root@rhel-6 ~]# chkconfig iptables off
- 准备好MySQL数据库软件
-
1
[root@rhel-6 software]# ls
2mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
3
-
- 准备好MySQL数据文件所在位置
- MySQL数据库文件所在的位置一定要有足够的空间,而且性能要很好
安装步骤
官方文档步骤:
1
shell> groupadd mysql
2
shell> useradd -r -g mysql -s /bin/false mysql
3
shell> cd /usr/local
4
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
5
shell> ln -s full-path-to-mysql-VERSION-OS mysql
6
# 也可以 mv mysql-5.7.17-linux-glibc2.5-x86_64/ mysql
7
shell> cd mysql
8
shell> mkdir mysql-files
9
shell> chmod 750 mysql-files
10
shell> chown -R mysql .
11
shell> chgrp -R mysql .
12
shell> bin/mysql_install_db --user=mysql # MySQL 5.7.5
13
shell> bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up
14
shell> bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up
15
shell> chown -R root .
16
shell> chown -R mysql data mysql-files
17
shell> bin/mysqld_safe --user=mysql &
18
# Next command is optional
19
shell> cp support-files/mysql.server /etc/init.d/mysql.server
开始安装:
1.新建MySQL用户和组
1
[root@rhel-6 local]# groupadd mysql #新建mysql组
2
[root@rhel-6 local]# useradd -r -g mysql -s /bin/false mysql #新建系统用户mysql,指定组为mysql,指定家目录
2.解压MySQL软件包
1
[root@rhel-6 local]# tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
2
[root@rhel-6 local]# cd /usr/local/
3.创建软连接
1
[root@rhel-6 local]# ln -s /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64 mysql
1
[root@rhel-6 local]# mv mysql-5.7.17-linux-glibc2.5-x86_64/ mysql
4.创建目录及修改目录权限
1
[root@rhel-6 local]# cd mysql/
2
[root@rhel-6 mysql]# mkdir mysql-files
3
[root@rhel-6 mysql]# chmod 750 mysql-files
4
[root@rhel-6 mysql]# chown -R mysql .
5
[root@rhel-6 mysql]# chgrp -R mysql .
5.修改配置文件
-
1
[root@rhel-6 mysql]# vim /etc/my.cnf
-
1
[mysqld]
2basedir = /usr/local/mysql
3datadir = /data
4
5port=3306
6server-id=1
7read_only=off
8pid-file=/data/mysqld.pid
9socket=/data/mysql.sock
10log-error=/data/mysql-server.err
11innodb_buffer_pool_size=1073741824
12log_bin=mysql-server
13binlog_format=row
14innodb_doublewrite=on
15join_buffer_size = 128M
16sort_buffer_size = 2M
17read_rnd_buffer_size = 2M
18innodb_read_io_threads=6
19innodb_write_io_threads=6
20innodb_purge_threads=6
21slow_query_log=ON
22slow_query_log_file=mysql.slow
23long_query_time=2
24log_queries_not_using_indexes=1
25log_throttle_queries_not_using_indexes=10
26innodb_data_file_path = ibdata1:100M:autoextend
27show_compatibility_56=on
28skip_name_resolve=on
29expire_logs_days = 5
30binlog_rows_query_log_events=on
31sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
32symbolic-links=0
33
34[mysqld_safe]
35datadir = /data
36socket = /data/mysql.sock
37basedir = /usr/local/mysql
38
39[mysql]
40socket = /data/mysql.sock
6.修改目录权限
1
[root@rhel-6 mysql]# mkdir -p /var/run/mysqld
2
[root@rhel-6 mysql]# chown -R mysql: /usr/local/mysql/
3
[root@rhel-6 mysql]# chown -R mysql: /var/run/mysqld/
7.授予datadir目录权限
1
[root@rhel-6 mysql]# mkdir /data
1
[root@rhel-6 mysql]# mkdir /data
8.执行自动化一键安装脚本
1
[root@rhel-6 mysql]# bin/mysqld --initialize --user=mysql
9.复制mysqld命令(复制后可使用service mysqld start/stop 启动/关闭mysql服务)
1
[root@rhel-6 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
10.将bin目录下面的命令复制到环境变量下(复制后可使用mysql -u -p命令登陆mysql)
1
[root@rhel-6 mysql]# cp bin/* /usr/bin/
1
[root@rhel-6 mysql]# cp bin/* /usr/bin/
11.启动mysql服务(跳过密码策略启动,可以直接修改mysql密码)
1
[root@rhel-6 mysql]# mysqld_safe --skip-grant-tables &
12.登陆mysql
1
[root@rhel-6 mysql]# mysql -p
13.修改密码
1
[root@rhel-6 mysql]# mysql> flush privileges;
2
[root@rhel-6 mysql]# mysql> alter user 'root'@'localhost' identified by '123456';
常见报错
执行自动化一键安装脚本时报错
1
[root@rhel-6 mysql]# bin/mysqld --initialize --user=mysql
2
bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
原因是缺少libaio和libaio-devel包
解决办法
安装libaio和libaio-devel包
1
[root@rhel-6 mysql]# yum install libaio*