文章做者:foochanehtml
原文連接:foochane.cn/article/201…mysql
use mysql; #信息放在mysql.user表下
desc users;
select host,user from mysql.user;
複製代碼
命令:sql
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
複製代碼
說明:shell
username
:你將建立的用戶名password
:該用戶的登錄密碼,密碼能夠爲空,若是爲空則該用戶能夠不須要密碼登錄服務器如:數據庫
CREATE USER 'test'@'%' IDENTIFIED BY '123456'
複製代碼
命令:服務器
GRANT privileges ON databasename.tablename TO 'username'@'host'
複製代碼
說明:ide
privileges
:用戶的操做權限,如SELECT
,INSERT
,UPDATE
等,若是要授予所的權限則使用ALL
databasename
:數據庫名tablename
:表名,若是要授予該用戶對全部數據庫和表的相應操做權限則可用表示,如.*例子:函數
GRANT SELECT, INSERT ON test_database.test_table TO 'testuser'@'%';
GRANT ALL ON test_database.* TO 'testuser'@'%';
GRANT ALL ON *.* TO 'testuser'@'%';
複製代碼
注意:spa
用以上命令受權的用戶不能給其它用戶受權,若是想讓該用戶能夠受權,用如下命令:rest
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
複製代碼
命令:
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
複製代碼
說明: 說明:
privileges
:用戶的操做權限,如SELECT
,INSERT
,UPDATE
等,若是要授予所的權限則使用ALLdatabasename
:數據庫名tablename
:表名,若是要授予該用戶對全部數據庫和表的相應操做權限則可用*
表示,如*.*
例子:
REVOKE ALL ON *.* FROM 'testuser'@'%';
複製代碼
命令:
DROP USER 'username'@'host';
複製代碼
命令:
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
複製代碼
若是是當前登錄用戶用:
SET PASSWORD = PASSWORD("newpassword");
複製代碼
select user();
select database();
複製代碼
注意這裏 uer()
,database()
不是語句,是函數。
建立:
create database databasename;
create database if not exists databasename;
複製代碼
刪除:
drop database databasename;
複製代碼
service mysql status
service mysql start
service mysql stop
service mysql restart
複製代碼
1 查看配置文件,看是否只容許本地訪問
配置文件具體位置 /etc/mysql/mysql.conf.d/mysqld.cnf
不一樣版本可能不同。
若有以下內容,把它註釋掉:
#bind-address = 127.0.0.1
複製代碼
2 防火牆問題
查看端口占用狀況:
netstat -nalp | grep "3306"
複製代碼
關閉防火牆
sudo ufw status
sudo ufw disable
複製代碼
3 mysql用戶沒有受權
CREATE USER 'hiveuser'@'%' IDENTIFIED BY '123456';
grant all privileges on *.* to 'hiveuser'@'%' identified by '123456' with grant option;
flush privileges;
create database metastore;
複製代碼