环境:
CentOS-7-x86_64
- 下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
- 安装mysql-community-release-el7-5.noarch.rpm包
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
- 安装mysql
sudo yum install mysql-server
- 重置密码
安装完成后,没有密码,需要重置密码,先登陆
mysql -u root
登录时有可能报这样的错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户。
sudo chown -R root:root /var/lib/mysql
重启服务:
$ service mysqld restart
登录重置密码:
mysql -u root
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > exit;
- 开放3306端口
sudo vim /etc/sysconfig/iptables
添加一下内容:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
保存后重启防火墙:
sudo service iptables restart
- 创建普通用户并授权
mysql > use mysql;
mysql > grant all privileges on *.* to 'root'@'%' identified by '123456';
mysql > flush privileges;
现在就可以从客户机连接mysql服务器了,如果连接报这样的错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.x.xxx’ (113)。因为我们是centos7,请先确认防火墙是否开启来,centos7默认是firewall,我们可以把它停止并禁止使用,然后启动我们熟悉的iptables,这样就好了!
- 关闭防火墙的方法
1、直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2、设置 iptables service
yum -y install iptables-services
如果要修改防火墙配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables
增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
最后重启系统使设置生效即可。