前置条件
#mysql 已经注册为服务,已经启动 #检查mysql服务状态,如果为disabled 或者未设置为服务需要启动 设置为服务(为了开机启动)并启动它
#检查mysql状态 centos 7+
systemctl status mysql
# 设置为服务(开机启动)
systemctl enable mysql
# 启动mariadb
systemctl start mysql
使用root 用户连接mysql
如果未设置 root 密码可以使用如下方式登陆
#> mysql
如果已 为mysql root 用户设置了密码,使用如下方式登录
mysql -u root -p
创建用户
1.mysql>CREATE USER \'user1\'@\'localhost\' IDENTIFIED BY \'pass1\'; --如果你要创建一个公网可以访问的用户,可以去掉@localhost 或者将localhost该为公网ip 2.mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO \'user1\'@\'localhost\'; OR mysql>GRANT ALL ON *.* TO \'user1\'@\'localhost\';
finally
mysql>FLUSH PRIVILEGES;
收回用户权限
revoke all on *.* from user1@localhost;
修改密码
set password for \'root\'@\'ip_address\' = password(\'xxx\');
查看用户访问权限
查询用户表命令:select User,authentication_string,Host,Password from user;
查看某个用户的权限
mysql> show grants for root@localhost;
|
权限 |
列 |
说明 |
|
CREATE |
Create_priv |
创建数据库和表 |
|
DROP |
Drop_priv |
抛弃(删除)数据库和表 |
|
GRANT OPTION |
Grant_priv |
数据库、表或保存的程序 |
|
REFERENCES |
References_priv |
未使用 |
|
ALTER |
Alter_priv |
修改表和索引 |
|
DELETE |
Delete_priv |
表 |
|
INDEX |
Index_priv Alter_priv |
创建或抛弃索引 |
|
INSERT |
Insert_priv |
向表中插入新行 |
|
SELECT |
Select_priv |
检索表中的记录 |
|
UPDATE |
Update_priv |
修改现存表记录 |
|
CREATE VIEW |
Create_view_priv |
视图 |
|
SHOW VIEW |
Show_view_priv |
视图 |
|
ALTER ROUTINE |
Alter_routine_priv |
保存的程序 |
|
CREATE ROUTINE |
Create_routine_priv |
保存的程序 |
|
EXECUTE |
Execute_priv |
保存的程序 |
|
FILE |
File_priv |
读或写服务器上的文件 |
|
CREATE TEMPORARY TABLES |
Create_tmp_table_priv |
服务器管理 |
|
LOCK TABLES |
Lock_tables_priv |
服务器管理 |
|
CREATE USER |
Create_user_priv |
服务器管理 |
|
PROCESS |
Process_priv |
查看服务器中执行的线程信息或杀死线程 |
|
RELOAD |
Reload_priv |
重载授权表或清空日志、主机缓存或表缓存 |
|
REPLICATION CLIENT |
Repl_client_priv |
服务器管理 |
|
REPLICATION SLAVE |
Repl_slave_priv |
服务器管理 |
|
SHOW DATABASES |
Show_db_priv |
服务器管理 |
|
SHUTDOWN |
Shutdown_priv |
关闭服务器 |
|
SUPER |
Super_priv |
服务器管理 |
修改密码
mysqladmin -u root password \'19740415\'
Mysql的端口是否正确
通过netstat -ntlp 查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My Admin\My Query Browser\MySQl Front等。
检查用户权限是否正确
mysql库的user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。
查看/etc/mysql/my.cnf中,skip-networking 是否已被注掉 需要注掉 报错:ERROR 2003 (HY000): Can\'t connect to MySQL server on \'192.168.51.112\' (111)
sudo gedit /etc/mysql/my.cnf #skip-external-locking #bind-address = 127.0.0.1 skip-name-resolve
查看iptables是否停掉,没关的情况下,无法连接
通过:service iptables stop临时关闭。
报错:ERROR 2003 (HY000): Can\'t connect to MySQL server on \'192.168.51.112\' (113)
Trouble shooting
如果意外收回了root用户的所有权限
如果你删除了你的root用户错误地可以做一件事:
- 停止MySQL服务
- 跑
mysqld_safe --skip-grant-tables & - 类型
mysql -u root -p然后按回车。 - 输入您的密码
- 在MySQL命令行中输入:
use mysql;
然后执行以下查询:
UPDATE user SET select_priv =\'Y\', insert_priv=\'Y\' , update_priv=\'Y\', delete_priv= \'Y\', create_priv=\'Y\', grant_priv=\'Y\', lock_tables_priv=\'Y\', DROP_PRIV=\'Y\', RELOAD_PRIV=\'Y\', SHUTDOWN_PRIV=\'Y\', PROCESS_PRIV=\'Y\', FILE_PRIV=\'Y\', REFERENCES_PRIV=\'Y\', INDEX_PRIV=\'Y\', ALTER_PRIV=\'Y\', SHOW_DB_PRIV=\'Y\', SUPER_PRIV=\'Y\', CREATE_TMP_TABLE_PRIV=\'Y\', EXECUTE_PRIV=\'Y\', REPL_SLAVE_PRIV=\'Y\', REPL_CLIENT_PRIV=\'Y\', CREATE_VIEW_PRIV=\'Y\', SHOW_VIEW_PRIV=\'Y\', CREATE_ROUTINE_PRIV=\'Y\', alter_routine_priv=\'Y\', create_user_priv=\'Y\', event_priv=\'Y\', trigger_priv=\'Y\', create_tablespace_priv=\'Y\' WHERE host=\'localhost\' AND User = \'root\'
然后重新启动mysqld。
reference documents
http://blog.csdn.net/sin90lzc/article/details/7648711
http://www.iteye.com/topic/418151