Linux下第一次使用MySQL数据库,设置密码授权
首先安装wget命令:
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
安装成功后如图
根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。
mysql -u root
选择数据库:use mysql;
修改密码:UPDATE user SET password=PASSWORD('123456') WHERE user='root';
刷新:flush privileges;
退出:exit;这样就完成了。
完美解决MySQL Access denied for user 'root'@'IP地址' 授权问题
1、mysql -u root -p 登陆进MYSQL;
2、执行以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'your name'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
3、exit;
4、如果此时还无法连接,检测配置文件(/etc/mysql/mysql.conf.d/mysqld.cnf) bind-address配置是否开启,应该是关闭
#bind-address = 127.0.0.1 注释掉;
5、重启mysql:/etc/init.d/mysql restart;
用户相关:
查看全部的用户:
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
新建用户:
创建新用户,如创新名字为‘pzsh’,密码为'q1w2'的人:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
解释:(localhost代表只允许本地访问,改成'%'的话,%这里表示的是允许任意host访问,也就是外网可以访问。后面的q1w2是设置的密码)
为用户授权:
格式:
grant 权限 on 数据库.* to username@登录主机 identified by "password";
演示样例:
grant all privileges on testDB.* to test@localhost identified by '1234';
然后须要运行刷新权限的命令:
flush privileges;
为用户授予部分权限:
grant select,update on testDB.* to test@localhost identified by '1234';
授予一个用户全部数据库的某些权限:
grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";
删除用户:
Delete FROM user Where User='test' and Host='localhost';
然后刷新权限;
删除账户及权限:>drop user username@'%';
>drop user username@ localhost;
解释:(create,insert代表该用户只有新增和创建权限,user.*代表该数据库下的所有表,'user'@'%'代表该数据库可以被外网访问。)
如果是需要增删改查权限的话,GRANT all ON user.* TO 'user'@'%';即可。
改动指定用户password
使用root登录:
mysql -u root -p
运行命令:
update mysql.user set password=password('新密码') where User="test" and Host="localhost";
刷新权限:
flush privileges;
还有就是mysql的3306端口需要开启,请先查询你的服务器端口,看看3306是否开启:
netstat -nuplf|grep 3306 (PS:这个表示查找处于监听状态的,端口号为3306的进程)
netstat -ntlp //查看当前所有tcp端口·
如果你的服务器没有开启3306端口,且有iptables服务的话,请执行一下命令:
1、打开防火墙配置文件
vi /etc/sysconfig/iptables
2、增加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3、重启防火墙
service iptables restart
注意:如果是从阿里云买的服务器,那么是没有iptables服务的,请看这里:
(1)进入服务器该页面,选择更多,找到安全组
(2)选择配置规则--》添加安全规则,例如:
(3)最终配置成这样就可以了:
5、以上配置完成后,就可以通过phpmyadmin连接该数据库了。
进入本地phpmyadmin的页面,找到配置文件:config.inc.php,然后修改主机名,数据库名称,用户密码等即可。
PS:ipconfig:既可以查看服务器的IP,也可以通过cmd查看本机的IP,挺好的。。。