Centos7安装配置MySQL 5.6
Centos7安装配置MySql 5.6
首先下载MySql5.6的安装包,具体安装方式分为yum安装与离线安装。在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL。
1. 离线安装
下载MySql5.6 社区版安装包
- 选择下载 之前的MySql GA 版本。
- 选择相应版本号,所属操作系统,然后根据需要下载64位还是32位Linux通用安装包。
- 下载完成后将本地安装包上传到Linux服务器上。一般默认将mysql安装到/usr/local/mysql中,也可以指定某些特定的路径,但是mysql在liunx中默认会找/usr/local/路径,如果更改路径比较麻烦。这里就选择安装在这个路径/usr/local/mysql下。
创建路径/usr/local/mysql
[root@localhost ~]# mkdir /usr/local/mysql
- 创建mysql数据存放目录
[root@localhost ~]# mkdir /usr/local/mysql/mysqldb
- 将mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz解压到/usr/local/mysql中:
[root@localhost ~]# tar -zxvf /usr/local/mysql/mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql
[root@localhost ~]# rm -rf /usr/local/mysql/mysql-5.6.49-linux-glibc2.12-x86_64.tar.gz
- 将解压的目录下的所有目录放在/usr/local/mysql下:
[root@localhost ~]# cp -rf /usr/local/mysql/mysql-5.6.49-linux-glibc2.12-x86_64/* /usr/local/mysql/
[root@localhost ~]# rm -rf /usr/local/mysql/mysql-5.6.49-linux-glibc2.12-x86_64/
- 创建mysql用户组
[root@localhost ~]# groupadd mysql
- 创建MySQL用户但该用户不能登陆(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql
- 将创建的mysql用户加入到mysql组下,更改/usr/local/mysql下文件的拥有者为mysql
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/
- 创建MySQL初始化配置文件,vim /etc/my.cnf,把[mysql-safe去掉]:
[root@localhost ~]# vim /etc/my.cnf
my.cnf文件修改样本
# [mysqld]
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
# symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
# [mysqld_safe]
# log-error=/var/log/mariadb/mariadb.log
# pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
- 进入安装mysql软件目录
[root@localhost ~]# cd /usr/local/mysql
- 修改当前目录拥有着为mysql用户
[root@localhost mysql]# chown -R mysql:mysql ./
- 安装数据库
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/mysqldb/
注:若执行以上最后一个命令出现以下问题:
FATAL ERROR: please install the following Perl modules before executing
./scripts/mysql_install_db:Data::Dumper
解决方法 :安装autoconf库,此包安装时会安装Data:Dumper模块,安装完成重新执行上述最后一个命令
[root@localhost ~]# yum -y install autoconf
2. yum安装
执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。
- 首先查看已安装的 Mariadb 数据库版本。
[root@localhost ~]# rpm -qa|grep -i mariadb
- 卸载已安装的 Mariadb 数据库。
[root@localhost ~]# rpm -qa|grep mariadb|xargs rpm -e --nodeps
- 再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成。
[root@localhost ~]# rpm -qa|grep -i mariadb
- 下载并安装MySQL官方的 Yum Repository。
[root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
- 安装mysql57-community-release-el7-11.noarch.rpm包
[root@localhost ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。
- 执行以下命令查看可用的 mysql 安装文件。
[root@localhost ~]# yum repolist all | grep mysql
- 安装mysql。
[root@localhost ~]# yum install mysql-server
- 检查mysql是否安装成功。
[root@localhost ~]# rpm -qa | grep mysql
3. 配置MySql
1. 授予my.cnf权限,权限方面最好不要配置为最高权限“777”,mysql担心这种最高权限文件被其他用户恶意修改,所以会忽略掉这个配置文件。这样mysql无法启动或重启。
- my.cnf设置为root用户可读写,其他用户不可写.
[root@localhost ~]# chmod 644 /etc/my.cnf
2. 设置MySql开机启动
- 将MySQL加入系统进程中
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
- 重启MySQL
[root@localhost ~]# service mysqld restart
- 赋予可执行权限
[root@localhost ~]# chmod +x /etc/init.d/mysqld
- 将mysqld服务加入到系统服务
[root@localhost ~]# chkconfig --add mysqld
- 检查mysqld服务是否已经生效
[root@localhost ~]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- 如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
[root@localhost ~]# chkconfig --level 345 mysqld on
- 以后可以使用service命令控制mysql的启动和停止
[root@localhost ~]# service mysqld start
[root@localhost ~]# service mysqld stop
3. 做软连接方便在命令窗口直接运行mysql命令
[root@localhost ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin
4. 配置MySql环境变量,配置环境变量 vim /etc/profile 最后加入:
[root@localhost ~]# vim /etc/profile
# 文件末尾加入 export PATH=$PATH:/usr/local/mysql/bin
# 使配置生效
[root@localhost ~]# source /etc/profile
5. 启动MySql,并修改登录密码
[root@localhost ~]# cd /usr/local/mysql/support-files/
[root@localhost support-files]# ./mysql.server start
- 修改随机登录密码,设置允许远程登录
[root@localhost ~]# mysql -uroot -p
登录数据库,初始不用输入密码,直接按回车进入MySql命令界面
- 在MySql命令窗口修改随机登录密码
mysql>use mysql;
mysql>update user set password=password('123456') where user='root';
mysql>flush privileges;
- 设置允许远程登录
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
6. 为防火墙firewalld添加开放端口
- 添加mysql端口3306
[root@localhost ~]# irewall-cmd --zone=public --add-port=3306/tcp --permanent
- 然后重新启动防火墙
[root@localhost ~]# firewall-cmd --reload
7. MySql启动方式
[root@localhost ~]# systemctl start mysqld.service #启动 mysql
[root@localhost ~]# systemctl restart mysqld.service #重启 mysql
[root@localhost ~]# systemctl stop mysqld.service #停止 mysql
[root@localhost ~]# systemctl enable mysqld.service #设置 mysql 开机启动