阿里雲服務器ecs配置之安裝mysql

下載並安裝mysql的YUM源html

一、下載mysql的YUM源:wget -P /home/temp http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm(wget命令:http://man.linuxde.net/wget)mysql

安裝mysql的YUM源:rpm -ivh mysql57-community-release-el7-11.noarch.rpmlinux

檢查mysql的YUM源是否安裝成功:yum repolist enabled | grep "mysql.*-community.*" sql

查看當前的啓用的 MySQL 版本:yum repolist enabled | grep mysql數據庫

二、安裝MySQL緩存

yum install mysql-community-server安全

安裝過程當中一直輸入"y"就能夠了服務器

或者加上參數 -y就不用手動輸入y確認了併發

yum -y install mysql-community-serversocket

三、測試

啓動mysql服務:systemctl start mysqld

登陸進Mysql(個人剛安裝完時沒有密碼):mysql -uroot或mysql

若是出現錯誤:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

則說明mysql安裝完後給root用戶生成了一個默認密碼,因此你須要使用密碼登陸。

查看mysql生成的默認密碼

爲了增強安全性,MySQL5.7爲root用戶隨機生成了一個密碼,若是安裝的是RPM包,則默認是在/var/log/mysqld.log中。

查看默認密碼:grep 'temporary password' /var/log/mysqld.log

mysql -uroot -p 回車 而後輸入默認密碼便可登陸myql。

其餘相關問題可參照:mysql5.7初始密碼設置問題

四、mysql服務用到的命令:

systemctl start mysqld    #啓動mysqld

systemctl stop mysqld    #中止mysqld

systemctl restart mysqld    #重啓mysqld

systemctl enable mysqld   #設置開機啓動

systemctl status mysqld    #查看 MySQL Server 狀態

五、mysql相關配置

設置密碼

mysqladmin -u root password 'new-password'

或set password for 'root'@'localhost' = password('123456');

設置完密碼以後就可使用mysql -u root -p 命令來登陸mysql數據庫了

六、防火牆設置

遠程訪問 MySQL, 需開放默認端口號 3306.

查看是否已開放該端口

firewall-cmd --permanent --zone=public --list-ports

若沒有則添加該端口

firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp

執行firewall-cmd --reload使最新的防火牆設置規則生效

以後可使用telnet ip port命令查看遠程訪問是否ok

七、遠程訪問設置

建立一個普通用戶 xx ,密碼是xxx
CREATE USER 'xx'@'%' IDENTIFIED BY 'xxx'; 
給這個用戶授予 SELECT,INSERT,UPDATE,DELETE 的遠程訪問的權限,這個帳號通常用於提供給實施的系統訪問 
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'xx'@'%'; 
建立一個管理員用戶 admin 帳號 ,密碼是 xxx
CREATE USER 'admin'@'%' IDENTIFIED BY 'xxx'; 
給這個用戶授予全部的遠程訪問的權限。這個用戶主要用於管理整個數據庫、備份、還原等操做。 
GRANT ALL PRIVILEGES  ON *.* TO 'admin'@'%'; 

設置用戶 root 能夠在任意 IP 下被訪問:
grant all privileges on *.* to root@"%" identified by "新密碼";
設置用戶 root 能夠在本地被訪問:
grant all privileges on *.* to root@"localhost" identified by "新密碼";

使受權馬上生效 
flush privileges;

八、設置字符集

通常的,爲了支持中文,咱們應該將字符集設爲 UTF-8, 執行SHOW VARIABLES LIKE 'character%';

查看當前 MySQL 字符集,默認服務器的字符器是 latin1 ,對中文不友好。修改 /etc/my.cnf 文件,添加字符集的設置

[mysql]

default-character-set = utf8

[mysqld]

character_set_server = utf8

重啓 MySQL ,能夠看到字符集已經修改了

其餘經常使用配置:

[mysqld]
basedir = path # 使用給定目錄做爲根目錄(安裝目錄)。
datadir = path # 從給定目錄讀取數據庫文件。
pid-file = filename # 爲mysqld程序指定一個存放進程ID的文件(僅適用於UNIX/Linux系統);

socket = /tmp/mysql.sock # 爲MySQL客戶程序與服務器之間的本地通訊指定一個套接字文件(Linux下默認是/var/lib/mysql/mysql.sock文件)
port = 3306 # 指定MsSQL偵聽的端口
key_buffer = 384M # key_buffer是用於索引塊的緩衝區大小,增長它可獲得更好處理的索引(對全部讀和多重寫)。
索引塊是緩衝的而且被全部的線程共享,key_buffer的大小視內存大小而定。
table_cache = 512 # 爲全部線程打開表的數量。增長該值能增長mysqld要求的文件描述符的數量。能夠避免頻繁的打開數據表產生的開銷
sort_buffer_size = 2M # 每一個須要進行排序的線程分配該大小的一個緩衝區。增長這值加速ORDER BY或GROUP BY操做。
注意:該參數對應的分配內存是每鏈接獨佔!若是有100個鏈接,那麼實際分配的總共排序緩衝區大小爲100×6=600MB
read_buffer_size = 2M # 讀查詢操做所能使用的緩衝區大小。和sort_buffer_size同樣,該參數對應的分配內存也是每鏈接獨享。
query_cache_size = 32M # 指定MySQL查詢結果緩衝區的大小
read_rnd_buffer_size = 8M # 改參數在使用行指針排序以後,隨機讀用的。
myisam_sort_buffer_size =64M # MyISAM表發生變化時從新排序所需的緩衝
thread_concurrency = 8 # 最大併發線程數,取值爲服務器邏輯CPU數量×2,若是CPU支持H.T超線程,再×2
thread_cache = 8 # #緩存可重用的線程數
skip-locking # 避免MySQL的外部鎖定,減小出錯概率加強穩定性。
[mysqldump]
max_allowed_packet =16M # 服務器和客戶端之間最大能發送的可能信息包

[myisamchk]
key_buffer = 256M
sort_buffer = 256M
read_buffer = 2M
write_buffer = 2M
其餘可選參數:
back_log = 384
指定MySQL可能的鏈接數量。 當MySQL主線程在很短期內接收到很是多的鏈接請求,該參數生效,主線程花費很短期檢查鏈接而且啓動一個新線程。 back_log參數的值指出在MySQL暫時中止響應新請求以前的短期內多少個請求能夠被存在堆棧中。 若是系統在一個短期內有不少鏈接,則須要增大該參數的值,該參數值指定到來的TCP/IP鏈接的偵聽隊列的大小。 試圖設定back_log高於你的操做系統的限制將是無效的。默認值爲50。對於Linux系統推薦設置爲小於512的整數。

max_connections = n
MySQL服務器同時處理的數據庫鏈接的最大數量(默認設置是100)。超過限制後會報 Too many connections 錯誤

key_buffer_size = n
用來存放索引區塊的RMA值(默認設置是8M),增長它可獲得更好處理的索引(對全部讀和多重寫)

record_buffer:
這裏寫代碼片 每一個進行一個順序掃描的線程爲其掃描的每張表分配這個大小的一個緩衝區。 若是你作不少順序掃描,你可能想要增長該值。默認數值是131072(128K)

wait_timeout:
服務器在關閉它以前在一個鏈接上等待行動的秒數。

interactive_timeout:
服務器在關閉它前在一個交互鏈接上等待行動的秒數。 一個交互的客戶被定義爲對 mysql_real_connect()使用 CLIENT_INTERACTIVE 選項的客戶。 默認數值是28800,能夠把它改成3600。

skip-name-resolve
禁止MySQL對外部鏈接進行DNS解析,使用這一選項能夠消除MySQL進行DNS解析的時間。 但須要注意,若是開啓該選項,則全部遠程主機鏈接受權都要使用IP地址方式,不然MySQL將沒法正常處理鏈接請求!

log-slow-queries = slow.log
記錄慢查詢,而後對慢查詢一一優化

skip-innodb
skip-bdb
關閉不須要的表類型,若是你須要,就不要加上這個

九、備份、還原
方法1:命令行 
備份 
mysqldump --socket=/var/lib/mysql/mysql.sock --single-transaction=TRUE -u root -p mysql> Solin.sql 
還原 
mysql --socket=/var/lib/mysql/mysql.sock -u root -p mysql< Solin.sql

十、默認配置文件路徑: 配置文件:/etc/my.cnf 日誌文件:/var/log//var/log/mysqld.log 服務啓動腳本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid

相關文章
相關標籤/搜索