centos7安裝mysql(yum)

centos7安裝mysql(yum)mysql

----安裝環境
----依賴安裝
----檢查mysql是否已安裝
----安裝
----驗證是否添加成功
----選擇要啓用的mysql版本
----經過Yum安裝mysql
----啓動和關閉 MySQL Server
----防火牆設置
----mysql安全設置
----遠程訪問設置
----更改數據存放目錄
----開機自起
----設置字符集
----其餘經常使用配置配置
----備份還原linux



安裝環境sql

centos7
MySQL 5.6.24


依賴安裝數據庫

MySQL依賴libaio,因此先要安裝libaio
yum search libaio #檢索相關信息
yum install libaio # 安裝依賴包centos

yum install libaio緩存

 

檢查mysql是否已安裝安全

yum list installed | grep mysql

若是已經安裝,就先所有卸載,命令以下:
yum -y remove mysql-libs.x86_64


安裝服務器

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
yum localinstall mysql-community-release-el7-5.noarch.rpm 併發


驗證是否添加成功
yum repolist enabled | grep "mysql.*-community.*" socket

 

選擇要啓用的mysql版本

查看mysql版本,執行
yum repolist all | grep mysql
能夠看到 5.5, 5.7 版本是默認禁用的,由於如今最新的穩定版是 5.6

能夠經過相似下面的語句來啓動某些版本
yum-config-manager --disable mysql56-community
yum-config-manager --enable mysql57-community-dmr

或者經過修改 /etc/yum.repos.d/mysql-community.repo 文件
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

其中 enabled=0 是指禁用,enabled=1 指啓用。
注意: 任什麼時候候,只能啓用一個版本。


執行
yum repolist enabled | grep mysql
查看當前的啓動的 MySQL 版本




經過Yum安裝mysql

執行命令
yum install mysql-community-server


查看安裝目錄
whereis mysql
能夠看到mysql的安裝目錄是/usr/bin


啓動和關閉 MySQL Server

啓動 MySQL Server
systemctl start mysqld

查看 MySQL Server 狀態
systemctl status mysqld

關閉 MySQL Server
systemctl stop mysqld

測試是否安裝成功
mysql
能夠進入mysql命令行界面




防火牆設置

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

 

方式1:iptables(CentOS 7.x版本以前用法,不推薦)

打開 iptables 的配置文件: 
vi /etc/sysconfig/iptables 
若是該 iptables 配置文件 不存在,先執行 yum install iptables-services 安裝

添加

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT

-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 3306 -j ACCEPT

執行iptables重啓生效 

service iptables restart 

 

方式2:firewall-cmd(推薦)

Centos 7使用firewalld代替了原來的iptables


執行
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp
這樣就開放了相應的端口。

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

注:

啓動防火牆    systemctl start firewalld

關閉防火牆    systemctl stop firewalld

查看 狀態      systemctl status firewalld

 


mysql安全設置

服務器啓動後,能夠執行
mysql_secure_installation;




遠程訪問設置

建立一個普通用戶 sa ,密碼是 some_pass
CREATE USER 'sa'@'%' IDENTIFIED BY 'some_pass';

給這個用戶授予 SELECT,INSERT,UPDATE,DELETE 的遠程訪問的權限,這個帳號通常用於提供給實施的系統訪問
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'sa'@'%';

建立一個管理員用戶 admin 帳號 ,密碼是 some_pass
CREATE USER 'admin'@'%' IDENTIFIED BY 'some_pass';

給這個用戶授予全部的遠程訪問的權限。這個用戶主要用於管理整個數據庫、備份、還原等操做。
GRANT ALL ON *.* TO 'admin'@'%';

使受權馬上生效
flush privileges;




更改數據存放目錄

建立數據存放目錄
home 目錄下創建 data 目錄
mkdir /home/data

把 MySQL 服務進程停掉
若是 MySQL 是啓動的,要先關閉
mysqladmin -u root -p shutdown

移動數據到數據存放目錄
/var/lib/mysql 整個目錄移到 /home/data,執行
mv /var/lib/mysql /home/data

這樣就把 MySQL 的數據文件移動到了 /home/data/mysql 下
修改 /etc/my.cnf 文件,
[mysqld]
datadir=/home/data/mysql
socket=/home/data/mysql/mysql.sock

[mysql]
socket=/home/data/mysql/mysql.sock

修改權限
chown -R mysql:mysql /home/data/mysql

重啓後,若是不能啓動 MySQL 服務,執行
vi /etc/sysconfig/selinux
調整
SELINUX=permissive
保存設置,執行 reboot 重啓生效


開機自起

查看 MySQL 服務是否開機啓動
systemctl is-enabled mysql.service;echo $?
enabled
0

若是是 enabled 則說明是開機自動,若是不是,執行
chkconfig --levels 235 mysqld on



設置字符集

通常的,爲了支持中文,咱們應該講字符集設爲 UTF-8, 執行
SHOW VARIABLES LIKE 'character%';
查看當前 MySQL 字符集
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

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

[mysqld]
character_set_server = utf8

[mysql]
default-character-set = utf8

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

其餘經常使用配置配置

調整 MySQL 運行參數,修改 /etc/my.cnf 文件,經常使用配置以下:
[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
關閉不須要的表類型,若是你須要,就不要加上這個




備份、還原

備份
mysqldump --socket=/home/data/mysql/mysql.sock --single-transaction=TRUE -u root -p emsc > emsc.sql

還原 mysql --socket=/home/data/mysql/mysql.sock -u root -p emsc < emsc.sql

相關文章
相關標籤/搜索