編譯安裝MySQL-5.5
cmake的重要特性之一是其獨立於源碼(out-of-source)的編譯功能,即編譯工作可以在另一個指定的目錄中而非源碼目錄中進行,這可以保證源碼目錄不受任何一次編譯的影響,因此在同一個源碼樹上可以進行多次不同的編譯,如針對於不同平臺編譯。
編譯安裝MySQL-5.5
一、安裝cmake (也可以yum安裝cmake,不過在此之前要yum list all | grep cmake安裝最新的)也可以使用編譯安裝
一般情況下,cmake無需自己編譯的,因爲epel各源中都是有的,是不許要在安裝的,直接yum即可
跨平臺編譯器
# tar xf cmake-2.8.8.tar.gz
# cd cmake-2.8.8
# ./bootstrap
# make
# make install
二、編譯安裝mysql-5.5.33
1、使用cmake編譯mysql-5.5
cmake指定編譯選項的方式不同於make,其實現方式對比如下:
./configure cmake .
./configure --help cmake . -LH or ccmake .
指定安裝文件的安裝路徑時常用的選項:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -D默認
-DMYSQL_DATADIR=/data/mysql 數據目錄
-DSYSCONFDIR=/etc 配置文件路徑,my.cnf位置
默認編譯的存儲引擎包括:csv、myisam、myisammrg和heap。若要安裝其它存儲引擎,可以使用類似如下編譯選項:
-DWITH_INNOBASE_STORAGE_ENGINE=1 使用innoDB
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 黑洞引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1
若要明確指定不編譯某存儲引擎,可以使用類似如下的選項:
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1 這一個是格式樣例
比如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
如若要編譯進其它功能,如SSL等,則可使用類似如下選項來實現編譯時使用某庫或不使用某庫:
-DWITH_READLINE=1 客戶單交互工具,可以使用命令歷史等各級高級功能
-DWITH_SSL=system
-DWITH_ZLIB=system 壓縮,節約帶寬
-DWITH_LIBWRAP=0
其它常用的選項:
-DMYSQL_TCP_PORT=3306 默認端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock sock位置
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci 排序規則
-DWITH_DEBUG=0
-DENABLE_PROFILING=1 是否支持性能剖析
如果想清理此前的編譯所生成的文件,則需要使用如下命令:
make clean
rm CMakeCache.txt
2、編譯安裝
# groupadd -r mysql 創建用戶,mysql作爲進程的主人
# useradd -g mysql -r -d /mydata/data mysql
# tar xf mysql-5.5.33.tar.gz
# cd mysql-5.5.33
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mydata/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
# make
# make install
3.初始化mysql
mkdir -pv /mydata/data
chown -R mysql.mysql /mysdata/data 數據存放目錄都給mysql
安裝目錄屬主不動,數組爲mysql: chown :mysql /usr/local/mysql/* -R
執行初始化:/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ 之後就會在數據目錄下/mydata/data下就會生成實例了,這樣數據初始化結束
複製服務腳本:cp support-files/mysql.server /etc/rc.d/init.d/mysqld 用戶使用mysql就可以進入數據庫
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
複製配置文件 cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
vim /etc/my.cnf
datadir = /mydata/data
service mysqld start 可以啓動測試了
ss -tnl 有3306即可
如果想要mysql客戶端正常啓動
vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
mysql 就能夠登錄客戶端了
/usr/local/mysql/bin目錄下的
mysqld
mysqld_safe 線程進程服務,平時默認啓動這個
mysqld_multi 一個主機上啓動多個進程,多實例進程
mysql 客戶端工具
mysqladmin
mysqldump 邏輯備份工具
my.cnf配置文件的訪問順序:/etc/my.cnf
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf mysql的運行目錄
如果定義了--default-extra-file=/path/to/file那還是會找這個路徑下的文件的
~/.my.cnf 當前用戶下的家目錄下隱藏的配置文件
從上到下一次尋找,所有配置集合有效,所有文件都定義的值,以最後匹配的爲準
################################################################################################
使用配置文件的方式
1.它依次查找多個需要查找的文件,結果是所有文件交集
2.如果某參數在多個文件中宏出現多次,後配置的最終生效
./mysqld --help --verbose 查看可以修改的文件,顯示當前服務上mysql所支持的所有變量和配置
1.顯示mysql的程序啓動時可用的選項,通常都是長選項
2.顯示mysqld配置文件中可用的服務變量
mysql > show global variables
mysql > show session variables
初始化:第二個操作
1、刪除所有匿名用戶
mysql > drop user''@'localhost'
mysql > drop user''@'www.zou.com'
用戶名賬號由兩部分組成:username@host
host還可以使用通配符
%:任意長度的任意字符
_:匹配任意單個字符
2.給所有的root用戶設定密碼
第一種方式
mysql > set password for username@host = password( 'your_password')
第二種方法 (比較妥當,安全)
mysql > update user set password = password('your_password') where user = 'root';
mysql > flush peivileges
第三種方式
# mysqladmin -uUserName -hHost password 'new_password' -p
mysqladmin -uUserName -h Host -p flush-privileges
接入MySQL服務器
mysql <-mysql protocol-> mysqld 使用mysql客戶端基於某種協議連接mysqld
mysql接受鏈接請求(有兩種)
本地通信:客戶端與服務器端位於同一主機,而且還要基於127.0.0.1(localhost)地址或lo接口進行通信
Linux OR Unix:Unix Sock,編譯安裝在/tmp/mysql.scok,如果是OS win ,位置在 /var/lib/mysql/mysql.sock
Widows: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
mysql監聽的端口:3306/tcp
非客戶端類的管理工具:myisamchk,myisampack
mysql:
交互式模式
mysql>
腳本模式
mysql < /path/to/mysql_scripy.sql
mysql交互式模式:
客戶端命令
mysql> help
mysql>\?
\c:取消命令的執行
\g
\G
\q
\!
\s
\. /path/to/mysql_script.mysql 批處理zhixingmysql命令
\# 命令補全
服務器端命令:需要命令結束符,默認爲分號(;)
mysql> help 關鍵字
help create table 獲取如何創建表
help contents 獲取整體列表
mysql> help keyword 獲取命令
mysql命令行選項
--compress 壓縮傳輸
--default-character-set=字符集 mysql啓動時(客戶端)向服務器發送的字符集
-V: 顯示版本號 --version
-v: 顯示詳細信息 --verbose
--ssl-ca=ca證書文件 (絕對路徑)
--ssl-capath =ca證書的文件夾
--ssl-cert =客戶端證書
--ssl-cipher =加密機制,方式
--ssl-key =使用的私鑰
--ssl-verify-server-cert =驗證服務器端證書
--database= -D:指定要使用的數據庫
-H --html:輸出結果爲html格式的文檔
-X --xml:輸出結果爲xml格式的文檔
--safe-updates:發送命令時拒絕使用無where字句的update或delete命令
mysql命令提示符
mysql> 等待輸入命令
'> 前面提供的‘未提供結束’
”> 引用字符串
`> 引用字符串
-> 續航符
/*> 註釋信息 結束以*/
mysql的命令行編輯快捷鍵
ctrl+w:刪除光標所在處之前的一個單詞
ctrl+u:刪除光標之前至行首的所有內容
ctrl+y:粘貼之前ctrl+w或ctrl+u刪除的內容
ctrl+a:移動光標至行首
ctrl+e:移動光標至行尾
一旦使用家mysql,就會在當前用戶家目錄下生成一個.mysql_history 的文件
mysql的輸出格式:
--html 或者 -H 就是輸出時顯示的是http格式的文檔
eg: mysql -uroot -H -p 之後select * mysql.user;複製粘貼這些輸出內容,到一個網頁中,打開時就會發現,一個正常的輸出格式的數據表格
-X --xml 的選項輸出格式爲xml,就是表格模式
mysqladmin工具 不用進入mysql就可以執行相關操作
mysqladmin [options] command [arg] [command[arg]] .....
command
create DB_Name 創建空數據庫 mysqladmin -uroot -p create mydb
-e:直接返回 mysqladmin -uroot -p -e 'show databases;'
drop DB_Name 刪除數據庫
debug 打開調試日誌並記錄到mysql中的error_log中 偶爾判斷mysql錯誤時有用
status:輸出簡要狀態信息
-sleep # 指定顯示延遲 mysqladmin -uroot -p --sleep 1 每一秒鐘顯示一次狀態信息
-count # 指定批次,顯示幾次轉態結果
extended-status:輸出mysq的各狀態變量及數值,相當於執行“mysql> show global status”
flush-hosts:清空主機相關的緩存:DNS解析緩存,此前因爲連接錯誤次數過多而被拒絕訪問mysqld的主機列表
flush-logs:日誌滾動,只能是二進制日誌和中繼日誌
refresh:相當於同時使用flush-logs和flush-hosts
flush-privileges:通知服務器重讀授權表
reload:重載授權表 相當於flush-privileges
flush-status:重置狀態變量的值
flush-tables:關閉當前打開的表文件句柄
flush-threads:清空線程緩存
kill:殺死指定的線程,後面跟線程id ,可以一次殺死多個線程,以逗號分隔,但不能有多餘空格
password:修改指定用戶的密碼
processlist: 顯示mysql線程列表
shutdown:關閉mysqld進程
start-slave 啓動從服務器進程
stop-slave 關閉從服務器進程
variables:顯示mysql的各服務器進程
GUI客戶端工具
Navicat for mysql
Toad for mysql
SQLyog
MySQL Front
phpMyAdmin
創建遠程連接的用戶:進入mysql
mysql> Create user 'root'@172.16.%.%;
GRANT all ON *.* TO 'root'@172.16.%.% IDENTIFIED BY '123.comer'; 授權並給密碼