本文将详细介绍如何在CentOS6.8上安装MySQL,并涵盖基础配置、启动服务、设置开机启动、以及用户权限管理等关键步骤,确保您能够顺利地在CentOS6.8环境中使用MySQL
一、准备工作 在安装MySQL之前,请确保您的CentOS6.8系统已经更新到最新版本,以避免潜在的兼容性问题
您可以通过以下命令更新系统: bash sudo yum update -y 二、检查并删除已安装的MySQL 在安装新的MySQL之前,首先需要检查系统中是否已经存在MySQL的安装包
如果存在,建议删除,以避免版本冲突
1.检查已安装的MySQL: bash yum list installed | grep mysql 2.删除已安装的MySQL(如果存在): bash yum -y remove mysql mysql-libs 请注意,`mysql-libs`是MySQL的库文件,有时候也会安装,因此最好一并删除
三、安装MySQL 在CentOS6.8上安装MySQL有几种方法,包括通过YUM仓库安装、下载官方RPM包安装,以及手动编译安装
为了简化流程,本文将重点介绍通过YUM仓库安装的方法
1.添加MySQL的YUM仓库: 首先,需要下载并安装MySQL的官方YUM仓库配置文件
由于CentOS6.8的官方仓库中可能不包含最新版本的MySQL,因此建议从MySQL官方网站下载适用于EL6(Enterprise Linux6)的仓库包
bash wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm rpm -ivh mysql-community-release-el6-5.noarch.rpm 安装完成后,会在`/etc/yum.repos.d/`目录下生成`mysql-community.repo`和`mysql-community-source.repo`两个文件,分别用于配置MySQL的二进制包和源代码包的仓库
2.禁用MySQL 5.6仓库(可选): 如果您的系统提示MySQL5.6仓库不可用或您希望安装MySQL5.7或更高版本,可以通过编辑`mysql-community.repo`文件来禁用MySQL5.6仓库
bash vim /etc/yum.repos.d/mysql-community.repo 找到`【mysql56-community】`部分,将`enabled=1`改为`enabled=0`
3.安装MySQL服务器: 现在,可以使用YUM命令来安装MySQL服务器了
bash yum install mysql-server -y 安装过程中,YUM会自动处理依赖关系,并下载所需的软件包
四、启动MySQL服务 安装完成后,需要启动MySQL服务,并设置其在系统启动时自动启动
1.启动MySQL服务: bash service mysqld start 或者,如果您使用的是`systemd`(尽管CentOS6默认使用的是`SysVinit`,但了解`systemd`命令也有帮助): bash systemctl start mysqld 请注意,CentOS6.8中默认的服务管理命令是`service`,而不是`systemctl`
2.设置MySQL开机启动: 为了确保MySQL在系统启动时自动启动,可以使用`chkconfig`命令
bash chkconfig mysqld on 然后,可以通过以下命令验证MySQL服务的开机启动设置: bash chkconfig --list mysqld 如果看到2-5行都是`on`,则表示设置成功
五、MySQL安全配置 安装并启动MySQL服务后,接下来需要进行一些基本的安全配置,包括设置root密码、删除匿名用户、禁止root远程登录等
1.获取MySQL的临时root密码: 在MySQL5.7及更高版本中,初始化安装后会自动生成一个临时密码
这个密码通常会在MySQL服务器的错误日志中记录
您可以通过以下命令找到它: bash grep temporary password /var/log/mysqld.log 2.登录MySQL并设置新密码: 使用找到的临时密码登录MySQL: bash mysql -u root -p 然后,在MySQL提示符下设置新的root密码: sql ALTER USER root@localhost IDENTIFIED BY NewPassword123!; 请注意,MySQL5.7及更高版本要求密码策略必须满足一定的复杂度要求(如长度、字符种类等)
3.删除匿名用户: 为了增强安全性,建议删除所有匿名用户
sql DELETE FROM mysql.user WHERE User=; 4.禁止root远程登录(可选): 为了安全起见,通常不建议允许root用户从远程登录
可以通过更新`mysql.user`表来限制root用户的登录主机
sql UPDATE mysql.user SET Host=localhost WHERE User=root; FLUSH PRIVILEGES; 5.创建新用户并授予权限: 根据您的需求,可以创建新的数据库用户,并授予他们适当的权限
sql CREATE USER newuser@localhost IDENTIFIED BY userpassword; GRANT ALL PRIVILEGES ON databasename. TO newuser@localhost; FLUSH PRIVILEGES; 如果需要允许新用户从远程登录,可以将`localhost`替换为`%`(表示任何主机): sql CREATE USER newuser@% IDENTIFIED BY userpassword; GRANT ALL PRIVILEGES ON databasename. TO newuser@%; FLUSH PRIVILEGES; 但请注意,这样做可能会增加安全风险
因此,在实际应用中,应根据具体情况谨慎配置
六、开放MySQL端口(防火墙配置) 如果您的CentOS系统启用了防火墙(如iptables),则需要开放MySQL使用的端口(默认是3306)以允许外部连接
1.编辑iptables规则: bash vim /etc/sysconfig/iptables 在规则列表中添加以下行以允许TCP端口3306的入站连接: iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport3306 -j ACCEPT 2.重启iptables服务: bash service iptables restart 或者,如果您使用的是`firewalld`(CentOS7及更高版本中的默认防火墙管理工具),则可以使用以下命令开放端口: bash firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload 但请注意,CentOS6.8默认使用的是iptables,而不是firewalld
七、配置MySQL字符集 为了确保MySQL能够正确处理中文等多字节字符集,通常需要在MySQL配置文件中设置默认的字符集
1.编辑MySQL配置文件: bash vim /etc/my.cnf 2.在【mysqld】部分添加字符集配置: ini 【mysqld】 character-set-server=utf8 collation-server=utf8_general_ci 3.重启MySQL服务以使配置生效: bash service mysqld restar