centos7安装并配置mysql

来源:互联网 发布:zepto.js菜鸟教程 编辑:程序博客网 时间:2024/06/06 04:53

1. 下载mysql的repo源

$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

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:

$ 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

然后,重启服务:

$ systemctl restart mysql.service

创建数据库和用户并赋予权限:

创建用户:

mysql > CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。

例子:

mysql > CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; mysql > CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';mysql > CREATE USER 'pig'@'%' IDENTIFIED BY '123456';mysql > CREATE USER 'pig'@'%' IDENTIFIED BY '';mysql > CREATE USER 'pig'@'%';

授权:

mysql > GRANT privileges ON databasename.tablename TO 'username'@'host';

说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子:

给来自任意远程主机登陆的用户pig授权test数据库user表的查询和插入权限

mysql > GRANT SELECT, INSERT ON test.user TO 'pig'@'%';

给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123

mysql > grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123

mysql > grant all privileges on *.* to joe@localhost identified by ‘123′;
注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

设置与更改用户密码

mysql > SET PASSWORD FOR 'root'@'%' = PASSWORD("123456");
撤销用户权限

mysql > REVOKE privilege ON databasename.tablename FROM 'username'@'host';
说明: privilege, databasename, tablename - 同授权部分.

例子:

mysql > REVOKE SELECT ON *.* FROM 'pig'@'%';
注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看.

删除用户

mysql > DROP USER 'username'@'host';

查看防火墙状态:

$ systemctl status iptables.service
如果提示:iptables.service could not be found,则表示防火墙服务没有安装,接下来安装防火墙服务

执行下列命令:

$ systemctl stop firewalld$ systemctl mask firewalld
并且安装iptables-services:

$ yum install iptables-service

设置开机启动:

$ systemctl enable iptables$ service iptables save

说明:防火墙测操作命令:

systemctl [stop|start|restart|status] iptables.service
#or
service iptables [stop|start|restart]

5. 开放3306端口

$ sudo vim /etc/sysconfig/iptables

添加以下内容(最上面):

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


保存后重启防火墙:

$ systemctl restart iptables.service
0 0