mysql 登入與許可權

2022-02-06 08:04:08 字數 4002 閱讀 5787

1.1 格式:mysql -u使用者名稱 -p密碼 -h ip -p 埠 -s 套接字

mysql -uvagrant -pvagrant -h 127.0.0.1 -p 3306 -s /tmp/mysql.lock

為什麼有的使用者可以這樣登陸??

mysql -uroot -proot

ormysql

為什麼他們的登陸那麼簡單?答案就是 mysql配置檔案設定了預設登入資訊,查詢如下

1.2 mysql 配置檔案位置

windows中 mysql 配置檔名 my.ini  一般在mysql 安裝路徑/etc/

my.ini

linux 中mysql配置檔名 my.cf 一般在

/etc/my.cf

1.3 mysql 配置檔案資訊說明

[client]

#客戶端連線時 使用的配置資訊

#password = your_password

port = 3306 # -p port

socket = /tmp/mysql.sock

[mysqld]

#mysqld啟動時使用的配置資訊

port = 3306        #

啟動時使用的ip埠

socket = /tmp/mysql.sock

datadir = /usr/local/mysql/var

skip-external-locking

key_buffer_size =32m

max_allowed_packet =1m

table_open_cache = 128sort_buffer_size =768k

net_buffer_length =8k

read_buffer_size =768k

read_rnd_buffer_size =512k

myisam_sort_buffer_size =8m

thread_cache_size = 16query_cache_size =16m

tmp_table_size =32m

explicit_defaults_for_timestamp =true

max_connections = 500max_connect_errors = 100open_files_limit = 65535log-bin=mysql-bin

binlog_format=mixed

server-id = 1expire_logs_days = 10early-plugin-load = ""

default_storage_engine =innodb

innodb_data_home_dir = /usr/local/mysql/var

innodb_data_file_path =ibdata1:10m:autoextend

innodb_log_group_home_dir = /usr/local/mysql/var

innodb_buffer_pool_size =128m

innodb_log_file_size =32m

innodb_log_buffer_size =8m

innodb_flush_log_at_trx_commit = 1innodb_lock_wait_timeout = 50[mysqldump]

quick

max_allowed_packet =16m

[mysql]

#mysql 使用命令列登陸時的使用資訊

user =vagrant # -uuser

password =vagrant # -ppassword

no-auto-rehash

[myisamchk]

key_buffer_size =32m

sort_buffer_size =768k

read_buffer =2m

write_buffer =2m

[mysqlhotcopy]

interactive-timeout

#!!!如果沒有[mysql],則使用者在執行mysql命令時的配置以[client]為準

# 如 [mysql] 下面的資訊

# user=vagrant 表示命令行預設使用vagrant使用者

# password = vagrant 表示命令行莫恩使用vagrant密碼

其他的資訊由[client]下提供

2.1 建立許可權使用者

格式:

grant 許可權 on 庫.表 to 使用者名稱.'

主機範圍

' identified by '

密碼';(該命令也可以修改許可權作業範圍和使用者密碼)

舉例1:

grant all on *.* to test@'

127.0.0.1

' identified by '

123'

#說明:

# 使用者名稱:test

# 密碼:123

# 主機範圍:127.0.0.1 (表示這是本即可以登陸)

# 許可權作業範圍*.*: 所有庫,所有表

#    

許可權: all

# 登陸方式:

mysql -utest -p123 -h 127.0.0.1

舉例二:

grant all blog.* '

py'@'

192.168.33.1

' identified by '

123';#

說明:#

使用者名稱:py

#密碼:123

#主機範圍:192.168.33.1(只有該ip主機可以登陸)

#許可權作業訪問:blog資料庫下的所有表

#許可權: all

另外說明:

#

想要命令立即生效:可以在命令執行後在執行下面命令

#flush privileges;

2.2 刪除許可權使用者

格式:

drop user '

使用者名稱'@'

主機範圍

'; #

執行命令即可刪除 許可權使用者

flush privileges; #

該命令會立即生效上面執行的sql 語句

2.3 檢視使用者

select * from

mysql.user;

#也可以使用如下操作

#use mysql

#select * from user

#上面的mysql.user ,簡化了進入mysql庫這一步

3.1 檢視可建立的使用者許可權

命令: show privileges;

3.2 刪除使用者授權

格式:

revoke 許可權 on 庫.表 from '使用者名稱'@'

主機範圍';

#該命令即使建立使用者,也是修改使用者許可權

# 使用者名稱和主機範圍 必須是已建立過的,這樣才可以修改,

舉例:

revoke alter,update,create,insert on *.* from'py

'@'192.168.33.1';

#將使用者名稱:py

#主機名:192.168.33.1

#許可權作用範圍*.*: 所有的庫下面的表都刪除alter,update,create,insert 許可權

3.3 檢視使用者許可權

格式:

show grants for

'使用者名稱

'@'主機範圍';

# 例如:

# show grant

for 'root'@'localhost';

MYSQL遠端登入許可權設定

mysql預設關閉遠端登入許可權,如下操作允許使用者在任意地點登入 1.進入mysql,grant all privileges on to root identified by with grant option identified by後跟的是密碼,可設為空。2.flush privilege...

MYSQL遠端登入許可權設定

現象 1 同一臺電腦在本機上有乙個視覺化軟體sql front,在虛擬機器上有乙個視覺化軟體sql front。資料庫伺服器開啟在虛擬機器上。在虛擬機器上使用sql front,可以正常連線mysql的資料庫,而在本機上無法連線。2 在虛擬機器上使用netstat ano findstr 3306 ...

mysql遠端登入許可權問題

遠端連線mysql資料庫的時候,報錯 出現 error 1130 hy000 host 192.168.14.1 is not allowed to connect to this mysql server提示資訊,不能遠端連線資料庫。解決方案如下 這個時候只要在localhost的那台電腦,登入m...