mysql 4 基础教程_MySQL基础教程(四):MySQL 管理
通過以下命令來檢查 MySQL 服務器是否啟動
ps-ef|grep mysql
例如在我的蘋果電腦上運行如下
[root@localhost~]# ps -ef | grep mysqlmysql1520 1 0 18:21 ? 00:00:00 /bin/sh/usr/bin/mysqld_safe--basedir=/usr
mysql 1682 1520 0 18:21 ? 00:00:00 /usr/libexec/mysqld--basedir=/usr --datadir=/var/lib/mysql--plugin-dir=/usr/lib64/mysql/plugin--log-error=/var/log/mariadb/mariadb.log--pid-file=/var/run/mariadb/mariadb.pid--socket=/var/lib/mysql/mysql.sock
root1774 1744 0 18:29pts/0 00:00:00grep--color=automysql
如果 MySql 已經啟動,上面的命令會輸出 mysql 進程列表?mysqld_safe?和?mysqld
啟動?MySQL?命令
如果 MySQL 未啟動,使用以下命令來啟動 MySQL 服務器
[root@localhost~]# mysqld_safe &
關閉?MySQL?命令
如果想關閉目前運行的 MySQL 服務器, 可以執行以下命令
[root@localhost~]# mysqladmin -u root -p shutdown
Enterpassword: ******
MySQL 添加用戶
MySQL 服務器默認已經添加了?root?用戶
如果需要添加 MySQL 用戶,我們只需要在數據庫?mysql?中的表?user?中插入新用戶即可
下面的 SQL 語句可以添加一個新的用戶
用戶名為?demo?密碼為?demo123?并授權用戶可進行?SELECT,INSERT,UPDATE?操作權限
INSERT INTO mysql.user(host,user,password,select_priv,insert_priv,update_priv)VALUES('localhost', 'demo',PASSWORD('demo123'), 'Y', 'Y', 'Y');
然后刷新權限
FLUSH PRIVILEGES;
你可以按照下面的步驟嘗試一下
[root@localhost~]# mysql -uroot -p
Enterpassword:
Welcometo theMariaDBmonitor. Commands end with ; or\g.
Your MariaDBconnection idis 6
Serverversion: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab andothers.
Type 'help;' or '\h' forhelp. Type '\c'to clear the current input statement.
MariaDB [(none)]>USE mysql;
Readingtable informationforcompletion of tableandcolumn namesYoucan turn offthisfeature togeta quicker startupwith -ADatabasechangedMariaDB [mysql]>INSERT INTO user(host,user,password,select_priv,insert_priv,update_priv)VALUES('localhost', 'demo',PASSWORD('demo123'), 'Y', 'Y', 'Y');
QueryOK, 1row affected, 4warnings(0.01sec)
MariaDB [mysql]>FLUSH PRIVILEGES;
QueryOK, 0rows affected(0.00sec)
MariaDB [mysql]>SELECT host,user,password FROM user WHERE user= 'demo';
+-----------+------+-------------------------------------------+
|host|user|password|
+-----------+------+-------------------------------------------+
|localhost|demo| *3055544BD641D0814B910C4ACA5799F51B80F460 |
+-----------+------+-------------------------------------------+
1rowin set (0.01sec)
在添加用戶時,請注意使用 MySQL 提供的?PASSWORD()?函數來對密碼進行加密
我們在上面的范例中看到用戶密碼加密后為:
3055544BD641D0814B910C4ACA5799F51B80F460
注意
1、 在 MySQL 5.7 中 user 表的 password 已換成了?authentication_string
2、 添加用戶后需要執行?FLUSH PRIVILEGES?語句,這個命令執行后會重新載入授權表 如果使用該命令,無法使用新創建的用戶來連接 MySQL 服務器,除非重啟 MySQL 服務器
用戶權限
可以在創建用戶時,為用戶指定權限,在對應的權限列中,在插入語句中設置為 ‘Y’ 即可
用戶權限說明
命令標識
授權表中對應的列
說明
CREATE
Create_priv
創建數據庫、表或索引
CREATE?TEMPORARY?TABLES
Create_tmp_table_priv
創建臨時數據表
CREATE?ROUTINE
Create_routine_priv
創建函數或存儲
CREATE?VIEW
Create_view_priv
創建視圖
CREATE?USER
Create_user_priv
創建用戶
EXECUTE
Execute_priv
執行函數或存儲過程
INDEX
Index_priv
建立索引
REFERENCES
References_priv
建立約束
DROP
Drop_priv
刪除表
SELECT
Select_priv
查詢數據
INSERT
Insert_priv
插入數據
UPDATE
Update_priv
更新數據
DELETE
Delete_priv
刪除數據
LOCK?TABLES
Lock_tables_priv
鎖定表格
SHOW?DATABASES
Show_db_priv
列出數據庫
SHOW?VIEW
Show_view_priv
列出視圖
USAGE
只有登錄權限, 其它權限都沒有
ALL
所有權限,除了 WITH?GRANT?OPTION
ALTER
Alter_priv
更改數據表
ALTER?ROUTINE
Alter_routine_priv
更改函數或存儲過程
PROCESS
Process_priv
顯示連接進程和中斷連接進程
FILE
File_priv
載入文件
RELOAD
Reload_priv
可以用 FLUSH
REPLICATION?CLIENT
Repl_client_priv
可以檢查 Masters 和 Slaves
REPLICATION?SLAVE
Repl_slave_priv
在 Slave 里的特殊權限
SHUTDOWN
Shutdown_priv
關閉 MySQL
WITH?GRANT?OPTION
Grant_priv
可以將自己擁有的權限賦給其它用戶
SUPER
Super_priv
執行 kill 線程,change?master、purge?master?logs、set?global等命令的權限
create?tablespace
Create_tablespace_priv
創建表空間
Event
Event_priv
確定用戶能否創建、修改和刪除事件
Trigger
Trigger_priv
確定用戶能否創建和刪除觸發器
GRANT 命令添加用戶
下面的 SQL 語句會給指定數據庫 test 添加用戶 souyunku1 ,密碼為 souyunku123xyz
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON test.*TO'souyunku1'@'localhost'IDENTIFIED BY'souyunku123xyz';
操作演示
[root@localhost~]# mysql -uroot -p
Enterpassword:
Welcometo theMariaDBmonitor. Commands end with ; or\g.
Your MariaDBconnection idis 8
Serverversion: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab andothers.
Type 'help;' or '\h' forhelp. Type '\c'to clear the current input statement.
MariaDB [(none)]>USE mysql;
Readingtable informationforcompletion of tableandcolumn namesYoucan turn offthisfeature togeta quicker startupwith -ADatabasechangedMariaDB [mysql]>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON test.*TO'souyunku1'@'localhost'IDENTIFIED BY'souyunku123xyz';
QueryOK, 0rows affected(0.00sec)
MariaDB [mysql]>FLUSH PRIVILEGES;
QueryOK, 0rows affected(0.00sec)
MariaDB [mysql]>SELECT host,user,password FROM user;
+-----------------------+-------+-------------------------------------------+
|host|user|password|
+-----------------------+-------+-------------------------------------------+
|localhost|root| |
|localhost.localdomain|root| |
| 127.0.0.1 |root| |
| ::1 |root| |
|localhost| | |
|localhost.localdomain| | |
|localhost|demo| *3055544BD641D0814B910C4ACA5799F51B80F460 |
|localhost|souyunku1| *302D386BA9E00875ADDF9ED0AD447B19FAE2FEDB |
+-----------------------+-------+-------------------------------------------+
8rowsin set (0.00sec)
MariaDB [mysql]>
/etc/my.cnf 配置文件
一般情況下,我們不需要修改該配置文件,該文件默認配置如下:
[root@localhost~]# cat /etc/my.cnf
顯示內容如下
[mysqld]datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid#
# include all files from the config directory
#
!includedir/etc/my.cnf.d
在配置文件中,我們可以指定不同的錯誤日志文件存放的目錄,但一般不需要改動這些配置
總結
以上是生活随笔為你收集整理的mysql 4 基础教程_MySQL基础教程(四):MySQL 管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 调试分析利器_使用syste
- 下一篇: mysql groupby 取值_mys