前置条件
#mysql 已经注册为服务,已经启动
#检查mysql服务状态,如果为disabled 或者未设置为服务需要启动 设置为服务(为了开机启动)并启动它
#检查mysql状态 centos7+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该为公网ip2.mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user1'@'localhost';ORmysql>GRANT ALL ON *.* TO 'user1'@'localhost';
finally
mysql>FLUSH PRIVILEGES;
收回用户权限
revoke all on *.* fromuser1@localhost;
修改密码
set password for 'root'@'ip_address' = password('xxx');
查看用户访问权限
查询用户表命令:select User,authentication_string,Host,Password from user;
查看某个用户的权限
mysql> show grants for root
权限
列
说明
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.1skip-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