您的位置:首页 > 运维架构 > Linux

centos7下使用yum安装mysql

2016-08-17 16:47 656 查看
Centos7的yum源中默认好像是没有mysql的。所以首先要下载mysql的repo源

1. 下载mysql的repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm[/code] 
2. 安装mysql-community-release-el7-5.noarch.rpm包

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm


安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

3. 安装mysql

sudo yum install mysql-server


根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。

4. 重置密码

重置密码前,首先要登录

mysql -u root


登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

sudo chown -R openscanner:openscanner /var/lib/mysql


然后,重启服务:

service mysqld restart


接下来登录重置密码:

mysql -u root


mysql > use mysql;
mysql > update user set password=password(‘123456‘) where user=‘root‘;
mysql > exit;


5. 开放3306端口

sudo vim /etc/sysconfig/iptables


添加以下内容:

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


保存后重启防火墙:

systemctl restart firewalld.service


这时从客户端连接的时候可能会报10038错误

(1)首先要确认的是3306端口是不是对外开放了。mysql默认状态下是不开发对外访问的功能的,所以大多数这就是问题的所在。

进入服务器,

~# netstat -an | grep 3306


tcp 0 0 127.0.0.1:3306   0.0.0.0:* LISTEN


仔细查看,如果都是127.0.0.1,那么说明3306端口没有对外开放,只是监听本地的连接。

Solution:进入到mysql的配置文件所在目录(/etc/mysql/my.cnf)找到文件中如下内容:

bind-address  = 127.0.0.1


将bind-address注释掉,或者改成客户端主机IP

(2)下面你还要确认的一件事就是确认客户端用户是否具有权限

mysql>grant all privileges on *.* to username@"%" identified by "password";
mysql>flush privileges;


注意%后面要空一隔

上面的命令授予的用户权限可以访问mysql中的任意数据库(database)和表(table)。

如果连接还是不行,请把防火墙关闭

systemctl stop firewalld.service


这样从其它客户机也可以连接上mysql服务了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos mysql