CentOS 7.1 (64-bit system)
MySQL 5.6.24
参考:http://www.waylau.com/centos-7-installation-and-configuration/
成功安装,提示如下:
如果有,就先全部卸载,命令如下:
若有多个依赖文件则依次卸载。当结果显示为 Complete!即卸载完毕。
地址为 http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
执行
如果提示<code>-bash: wget: 未找到命令</code>,请先执行 <code>yum install wget</code> 安装 wget
添加 MySQL Yum Repository 到你的系统 repository 列表中,执行
显示
提示是否 OK ,输入 y
提示“完成!”,则说明 源添加成功。
可以看到下面内:
查看 MySQL 版本,执行
可以看到 5.5, 5.7 版本是默认禁用的,因为现在最新的稳定版是 5.6
可以通过类似下面的语句来启动某些版本
或者通过修改 <code>/etc/yum.repos.d/mysql-community.repo</code> 文件
其中 <code>enabled=0</code> 是指禁用,<code>enabled=1</code> 指启用。
注意: 任何时候,只能启用一个版本。
查看当前的启动的 MySQL 版本
本例,我们启用的是 5.6 版本。
Yum 会自动处理 MySQL 与其他组件的依赖关系:
输入 y 继续下载相关文件;
遇到上述提示,输入 y 继续,执行完成会提示“完毕!”。此时MySQL 安装完成,它包含了 mysql-community-server、mysql-community-client、mysql-community-common、mysql-community-libs 四个包。
可以看到 MySQL 的安装目录是 /usr/bin/
可以进入 mysql 命令行界面
远程访问 MySQL, 需开放默认端口号 3306.
打开 iptables 的配置文件:
修改
在里面加入这2行:
改为
如果该 iptables 配置文件 不存在,先执行 <code>yum install iptables-services</code> 安装
执行 iptables 重启生效
这样就开放了相应的端口。
使最新的防火墙设置规则生效。
服务器启动后,可以执行
看到如下提示
此时输入 root 原始密码(初始化安装的话为空),接下来,为了安全,MySQL 会提示你重置 root 密码,移除其他用户账号,禁用 root 远程登录,移除 test 数据库,重新加载 privilege 表格等,你只需输入 y 继续执行即可。
至此,整个 MySQL 安装完成。
创建一个普通用户 sa ,密码是 some_pass
给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个账号一般用于提供给实施的系统访问
创建一个管理员用户 admin 账号 ,密码是 some_pass
给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。
使授权立刻生效
home 目录下建立 data 目录
如果 MySQL 是启动的,要先关闭
<code>/var/lib/mysql</code> 整个目录移到 <code>/home/data</code>,执行
这样就把 MySQL 的数据文件移动到了 <code>/home/data/mysql</code> 下
修改 <code>/etc/my.cnf</code> 文件,
修改权限
重启后,如果不能启动 MySQL 服务,执行
调整
保存设置,执行 reboot 重启生效
查看 MySQL 服务是否开机启动
如果是 enabled 则说明是开机自动,如果不是,执行
一般的,为了支持中文,我们应该讲字符集设为 UTF-8, 执行
查看当前 MySQL 字符集
可以看到默认服务器的字符器是 latin1 ,对中文不友好。
修改 <code>/etc/my.cnf</code> 文件,添加字符集的设置
重启 MySQL ,可以看到字符集已经修改了
调整 MySQL 运行参数,修改 <code>/etc/my.cnf</code> 文件,常用配置如下:
其他可选参数:
back_log = 384
指定MySQL可能的连接数量。 当MySQL主线程在很短时间内接收到非常多的连接请求,该参数生效,主线程花费很短时间检查连接并且启动一个新线程。 back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。 如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。 试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。
max_connections = n
MySQL服务器同时处理的数据库连接的最大数量(默认设置是100)。超过限制后会报 Too many connections 错误
key_buffer_size = n
用来存放索引区块的RMA值(默认设置是8M),增加它可得到更好处理的索引(对所有读和多重写)
record_buffer:
每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。 如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128K)
wait_timeout:
服务器在关闭它之前在一个连接上等待行动的秒数。
interactive_timeout:
服务器在关闭它前在一个交互连接上等待行动的秒数。 一个交互的客户被定义为对 mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户。 默认数值是28800,可以把它改为3600。
skip-name-resolve
禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。 但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!
log-slow-queries = slow.log
记录慢查询,然后对慢查询一一优化
skip-innodb
skip-bdb
关闭不需要的表类型,如果你需要,就不要加上这个