CentOs6.5 安装 mysql5.6 并更改数据存储目录

1. 新开的云服务器,需要检测系统是否自带安装 mysql

# yum list installed | grep mysql

2. 如果发现有系统自带 mysql,果断这么干

# yum -y remove mysql-libs.x86_64

3. 下载 mysql5.6 yum 文件

# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm

4. 接着执行这句, 解释一下,这个 rpm 还不是 mysql 的安装文件,只是两个 yum 源文件,执行后,在 /etc/yum.repos.d/ 这个目录下多出 mysql-community-source.repo 和 mysql-community.repo

# rpm -ivh mysql-community-release-el6-5.noarch.rpm

5. 这个时候,可以用 yum repolist
mysql 这个命令查看一下是否已经有 mysql 可安装文件

#yum repolist all | grep mysql

6. 安装 mysql 服务器命令(一路 yes):

# yum install mysql-community-server

7. 安装成功后

# service mysqld start

8. mysql 设置为开机启动

#chkconfig --list | grep mysqld

#chkconfig mysqld on

9. 创建目录

# mkdir /mnt/software/mysql

# chown -R mysql:mysql /mnt/software/mysql

# chmod 700 /mnt/software/mysql /  ← 改变数据库目录属性为 700
拷贝 mysql 文件

10. 修改 MySql 的配置文档 /etc/my.cnf 配置文档

[mysqld]

datadir=/mnt/software/mysql

socket=/mnt/software/mysql/mysql.sock

[client]

port = 3306

socket=/mnt/software/mysql/mysql.sock

11. 启动 mysql server  
# service mysqld start

 会发现启动失败报“mysqld_safe Directory
‘/mnt/softdata/mysql’ for UNIX socket”错误

12. 获取当前 SELinux 状态  
# getenforce

 默认 enforcing

13. 修改 SELinux 状态 先用以下命令试试 mysql 是否可以启动 

# setenforce 0

# service mysqld start

启动 ok

接下来修改 SELinux 配置文件

# vi /etc/selinux/config 改为SELINUX=permissive

保存,重启

14.mysql 安全设置 (系统会一路问你几个问题,看不懂复制之后翻译,基本上一路 yes):

# mysql_secure_installation

15. 设置远程连接

mysql> grant usage on *.* to 'user1'@'localhost'
identified by '你的密码';//创建用户user1和密码

mysql> select host,user,password from
mysql.user where user='user1';//查看记录 

mysql> grant all privileges on *.* to user1@'%'identified
by '你的密码';//设置可以远程访问

mysql> flush privileges;

如果外部还是无法连接,检查端口及防火墙,并修改防火墙配置

16. 查看 mysql 是否自启动, 并且设置开启自启动命令

# chkconfig --list | grep mysqld

# chkconfig mysqld on

17. 防火墙开放 3306 端口

# vi /etc/sysconfig/iptables

增加下面一行(注意:增加的开放 3306 端口的语句一定要在 icmp-host-prohibited 之前)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

重启防火墙

# service iptables restart

18. 若发生下面的错误

Can’t get hostname for your addressConnection closed by foreign host

修改数据库配置文件

# vi /etc/my.cnf

在 [mysqld] 节点下新增或修改如下两行

skip-name-resolve `#忽略主机名的方式访问

lower_case_table_names=1 `#忽略数据库表名大小写

重启 MySQL 服务就 OK。

19. 设置 mysql 字符集

Mysql> SHOW VARIABLES LIKE 'character_set%';查看当前字符集

# vi /etc/my.cnf

1、在 [client] 字段里加入 default-character-set=utf8,如下:

[client]

default-character-set=utf8

2、在 [mysqld] 字段里加入 character-set-server=utf8,如下:

[mysqld]

character-set-server=utf8

3、在 [mysql] 字段里加入 default-character-set=utf8,如下:

[mysql]

default-character-set=utf8

# service mysqld restart