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

centos7安装并配置mysql

2017-01-04 22:07 477 查看
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 > flush privileges;


设置与更改用户密码



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,则表示防火墙服务没有安装,接下来安装防火墙服务

执行下列命令:

#先检查是否安装了iptables  
service iptables status  
#安装iptables  
yum install -y iptables  
#升级iptables  
yum update iptables   
#安装iptables-services  
yum install iptables-services 

设置开机启动:

$ systemctl enable iptables
$ service iptables save


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

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

#or

service iptables [stop|start|restart]

[b]5. 开放3306端口
[/b]

$ sudo vim /etc/sysconfig/iptables

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

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




保存后重启防火墙:

$ systemctl restart iptables.service

删除mysql:

yum remove mysql mysql-server mysql-libs compat-mysql51

然后查看是否还有安装的mysql

rpm -qa | grep mysql

如果有,

rpm -e  ** 进行删除,删除不掉的 后面加上 --nodeps

查找mysql相关目录

find / -name mysql

如果存在目录,删除

rm -rf *
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: