1. 程式人生 > >30、mysql初始化及客戶端工具的使用

30、mysql初始化及客戶端工具的使用

mysql監聽的埠: 3306/tcp

檢視埠

ss -tnl

檢視命令歷史

~/.mysql_history


Mysql初始化:提供配置檔案(/etc/mysql/my.cnf  /etc/my.cnf  ~/.my.cnf)

集中式的配置:多個應用程式共用的配置檔案

[mysqld]

[mysqld_safe]

[client]        

使用配置檔案的方式

1、它依次查詢每個需要查詢的檔案,結果是所有檔案並集;

2、如果某引數在多個檔案中出現多次,後讀取的最終生效;


# /usr/local/mysql/bin/mysqld --help --verbose

  0、讀取配置檔案的順序

1、顯示mysqld程式啟動時可用的選項,通常都是長選項

2、顯示mysqld的配置檔案中可用的服務變數

SHOW GLOBAL VARIABLES

SHOW SESSION VARIABLES


初始化:第二個操作

1、刪除所有匿名使用者

  SELECT User,Host,Password FROM user;

DROP USER ''@'localhost';

DROP USER ''@'localhost.localdomain';


使用者帳號由兩部分組成:[email protected]

host還可以使用萬用字元:

%: 任意長度的任意字元

_: 匹配任意單個字元


2、給所有的root使用者設定密碼:

第一種方式:

SET PASSWORD FOR [email protected] = PASSWORD('your_passwrod');

第二種方式:(推薦)

PDATE user SET password = PASSWORD('your_password') WHERE user = 'root';

FLUSH PRIVILEGES;

第三種方式:

mysqladmin -uUserName -hHost password 'new_password' -p

mysqladmin -uUserName -hHost -p flush-privileges

3、設定遠端登入賬號

GRANT ALL ON mysql.* TO 'testuser'@'192.168.%.%' IDENTIFIED BY 'testpass';

FLUSH PRIVILEGES;

SELECT User,Host,Password FROM user;


連入MySQL伺服器

mysqld接收連線請求:

本地通訊:客戶端與伺服器端位於同一主機,而且還要基於127.0.0.1(localhost)地址或lo介面進行通訊;

Linux OR Unix: Unix Sock, /tmp/mysql.sock, /var/lib/mysql/mysql.sock

Windows: memory, pipe

遠端通訊:客戶端與伺服器位於不同的主機,或在同一主機便使用非迴環地址通訊

TCP socket


客戶端工具:mysql, mysqladmin, mysqldump, mysqlcheck

配置檔案中[client]欄位會影響上述客戶端工具  

通用的選項:

-u, --user=

-h, --host=

-p, --password=

--protocol={tcp|socket|memory|pipe}

--port=

--socket=    例如:/tmp/mysql.sock


非客戶端類的管理工具:myisamchk, myisampack


mysql工作模式: 

互動式模式

mysql> 

指令碼模式

mysql < /path/to/mysql_script.sql


mysql互動式模式:

客戶端命令

mysql> help

\q

\. /path/to/mysql_script.sql

伺服器端命令:需要命令結束符,預設為分號(;)

mysql> help contents

mysql> help Keryword


mysql命令列選項:

--compress 壓縮傳輸

--database=, -D             指定連線的資料庫

-H, --html 輸出結果為html格式的文件

-X, --xml 輸出格式為xml

--sate-updates:         拒絕使用無where子句的update或delete命令;


mysql命令提示符:

mysql> 等待輸入命令

->  續航符

'> 等待輸入單引號分隔符

"> 等待輸入雙引號分隔符

`> 等待輸入反引號分隔符

/*> 註釋資訊

單引號、雙引號、反引號都可以用來引用字元


mysql的快捷鍵:

Ctrl + w: 刪除游標之前的單詞

Ctrl + u: 刪除游標之前至命令列首的所有內容

Ctrl + y: 貼上使用Ctrl+w或Ctrl+u刪除的內容

Ctrl + a: 移動游標至行首

Ctrl + e: 移動游標至行尾


mysqldmin工具:

mysqladmin [options] command [arg] [command [arg]] ...

command: 

create DB_NAME 建立資料庫

drop DB_NAME 刪除資料庫

debug 開啟除錯日誌並記錄於error log中;

status 顯示簡要狀態資訊

--sleep # 間隔時長

--count # 顯示的批次

extended-status 輸出mysqld的各狀態變數及其值,相當於執行“mysql> SHOW GLOBAL STATUS”

variables 輸出mysqld的各伺服器變數


flush-hosts 清空主機相關的快取:DNS解析快取,此前因為連線錯誤次數過多而被拒絕訪問mysqld的主機列表

flush-logs 日誌滾動,二進位制日誌和中繼日誌

refresh 相當於同時使用flush-logs和flush-hosts


flush-privileges: 

reload 功能同flush-privileges

flush-status 重置狀態變數的值

flush-tables 關閉當前開啟的表文件控制代碼

flush-threads 清空執行緒快取

kill 殺死指定的執行緒,可以一次殺死多個執行緒,以逗號分隔,但不能有多餘空格

password 修改當前使用者的密碼

ping 檢視資料庫是否線上

processlist 顯示mysql執行緒列表

shutdown 關閉mysqld程序;


start-slave 啟動從伺服器執行緒

stop-slave 關閉從伺服器執行緒



GUI客戶端工具:

Navicat for mysql

Toad for mysql

mysql front

sqlyog

phpMyAdmin