天天看點

centOS中mysql/mariaDB一些常用操作指令

來源:https://www.kimsom.com/article/144

centOS中mysql/mariaDB一些常用操作指令

本文以centOS7為例,其他版本的centos在指令上可能有差别,大家注意一下。其實在centos中mysql和mariadb的操作指令基本是一樣的,這裡就以mariaDB為例。

安裝mariaDB

1

yum -y install mariadb*

1.修改mysql/mariaDB配置

1

vi /etc/my.cnf 這裡會有很多需要注意的配置項,後面會有專門的筆記

暫時修改一下編碼(添加在密碼下方):

1

default-character-set = utf8

2.設定mysql/mariaDB随系統啟動

1 2 3

systemctl enable mariadb 設定mariaDB服務随系統啟動自啟動

systemctl is-enabled mariadb 确認mariaDB自啟動,如果為enable就OK

systemctl start mariadb 啟動mariadb

3.顯示目前mysql/mariaDB版本和目前日期(在設定前可以用mysql_secure_installation初始化一下mysql。)

1

mysql -u user -p password 登入mariaDB

1

select version(),current_date;

4.修改mysql/mariaDB root密碼

1 2 3 4 5

mysql -u root -p 用root使用者登入mysql/mariadb伺服器

select user,host,password from mysql.user; 檢視使用者資訊

set password for [email protected]=password('在這裡填入root密碼'); 設定root密碼

select user,host,password from mysql.user; 檢視使用者資訊

exit 退出mariaDB

5.使用密碼登陸mysql/mariadb

1

mysql -u root -p

6.删除mysql匿名使用者

1 2 3

select user,host from mysql.user; 檢視使用者資訊

delete from mysql.user where user=''; 删除匿名使用者

select user,host from mysql.user; 檢視使用者資訊

7.檢視資料庫

1 2 3

show databases; 檢視系統已存在的資料庫

drop database test; 删除名為test的空資料庫

show databases; 檢視系統已存在的資料庫

檢視打開的端口:

1

show variables like 'port';

8.建立新使用者并為新使用者授權

建立對test資料庫有完全操作權限的名為centospub的使用者

1

grant all privileges on test.* to [email protected] identified by '在這裡定義密碼';

建立一個可以從任何地方連接配接伺服器的一個完全的超級使用者,但是必須使用一個密碼

1

mysql> grant all privileges on *.* to [email protected] identified by ’密碼’;

增加新使用者

格式:

1 2 3

grant select on 資料庫.* to 使用者名@登入主機 identified by “密碼”;

GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY ’something’ WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;

删除授權:

1 2 3

mysql> revoke all privileges on *.* from root@”%”;

mysql> delete from user where user=”root” and host=”%”;

mysql> flush privileges;

9.細粒度授權

建立一個使用者custom在特定用戶端kimsom.com登入,可通路特定資料庫fangchandb

1

mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ kimsom.com identified by ‘passwd

10.建立新資料庫

建立名為test的資料庫 (注意是否可以建立這個資料庫是在上面建立新使用者的時候就決定了的)

1

create database test;

11.使用資料庫

1 2

use test; 連接配接到資料庫

show tables; 檢視資料庫中已存在的表

12.删除測試賬戶

取消centospub使用者對資料庫的操作權限

1

revoke all privileges on *.* from [email protected];

删除centospub使用者

1

delete from mysql.user where user='centospub' and host='localhost';

查找使用者centospub,确認已删除與否

1

select user from mysql.user where user='centospub';

重新整理,使以上操作生效

1

flush privileges;

13.删除資料庫

1 2

drop database name; 直接删除資料庫,不提醒

mysqladmin drop databasename; 删除資料庫前,有提示

14.表操作

1 2 3

show tables; 顯示表

describe tablename; 表的較長的描述

alter table t1 rename t2; 重命名表

15.CentOS系統中mysqldump

在shell中執行下面的指令

備份資料庫

1

shell> mysqldump -h yourhost vi-u root -p dbname >dbname_backup.sql

恢複資料庫

1 2

shell> mysqladmin -h yourhost -u root -p create dbname

shell> mysqldump -h yourhost -u root -p dbname < dbname_backup.sql

如果隻想Dump建表指令,則指令如下:

1

shell> mysqladmin -u root -p -d databasename > a.sql

如果隻想Dump插入資料的sql指令,而不需要建表指令,則指令如下:

1

shell> mysqladmin -u root -p -t databasename > a.sql

那麼如果我隻想要資料,而不想要什麼sql指令時,應該如何操作呢?

1

mysqldump -T./ phptest driver

其中,隻有指定了-T參數才可以寫出純文字檔案,表示寫出資料的目錄,./表示目前目錄,即與mysqldump同一目錄。如果不指定driver表,則将寫出整個資料庫的資料。每個表會生成兩個檔案,一個為.sql檔案,包含建表執行。另一個為.txt檔案,隻包含資料,且沒有sql指令。

16.可将查詢存儲在一個檔案中并告訴mysql從檔案中讀取查詢而不是等待鍵盤輸入。

可利用輸入重定向實用程式來完成這項工作。例如,如果在檔案my_file.sql中存放有查詢,可如下執行這些查詢:

将建表語句提前寫在sql.txt中:

1

mysql > mysql -h yourhost -u root -p yourdatabase < sql.txt