Windows上安裝MySQL也就不講了,基本上一路點擊下一步就可完成,如今講講Linux上佈署Mysql,雖然也有不少網友列出了詳細的步驟,多是由於版本過老的問題致使即便按照上面一步步來也仍是出現很多問題,因此在此列出以做防坑指南。mysql
至於Mysql是什麼,能作什麼那就不用介紹了,主要講安裝。linux
CentOS7.0sql
Mysql-5.7.17數據庫
用root用戶安裝安全
關閉防火牆或讓涉及到的端口經過。服務器
-A INPUT -m state --state NEW -m tcp -p tcp --sport 3306 -j ACCEPT -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 而後執行下面命令,使防火牆當即生效。 service iptables restart
去官網下載 :http://dev.mysql.com/downloads/mysql/socket
下載後放進CentOS中的/usr/local/ 文件夾中,並解壓到當前文件中 /usr/local/mysql,Mysql有不少版本,沒選對可能也會出現各類問題。tcp
groupadd mysql #添加用戶組 useradd -r -g mysql -s /bin/false mysql #添加mysql用戶
進入/usr/local文件夾解壓mysql到當前文件夾:ide
cd /usr/local
tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
重命名爲mysql性能
mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql
一、複製my.cnf 到 /etc/my.cnf (mysqld啓動時自動讀取)
cp my-default.cnf /etc/my.cnf
若是"/etc/"目錄下沒有my.cnf配置文件,請到"/usr/share/mysql/"下找到*.cnf文件,拷貝其中一個合適的配置文件到"/etc/"並更名爲"my.cnf"中。命令以下:
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
二、解決一下亂碼問題
vi /etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8
[client] #password = your_password port = 3306 socket = /usr/local/mysql/data/mysql.sock default-character-set=utf8 # Here follows entries for some specific programs # The MySQL server [mysqld] port = 3306 socket = /usr/local/mysql/data/mysql.sock datadir=/usr/local/mysql/data skip-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M default-storage-engine=INNODB character_set_server=utf8 lower_case_table_names=1
三、複製mysql.server 到/etc/init.d/ 目錄下【目的想實現mysqld -install這樣開機自動執行效果】
【/etc/init.d/ 目錄,等效於註冊表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services 記錄有哪些服務】
cp mysql.server /etc/init.d/mysql (mysql是服務名)
四、修改 /etc/init.d/mysql 參數
vi /etc/init.d/mysql
給與2個目錄位置
basedir=/usr/local/mysql datadir=/usr/local/mysql/data port = 3306
四、給目錄/usr/local/mysql 更改擁有者
chown -R mysql:mysql /usr/local/mysql
在/etc/profile裏面在文件末尾添添加一個路徑
mysql_install_db (老版本的作法)
新版本:
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
生成出一個data目錄,表明數據庫已經初始化成功
/usr/local/mysql/bin/mysqld_safe --user=mysql
檢查ps -ef|grep mysql
再給超級管理員上密碼:root
bin/mysqladmin -u root password 'root'
mysql>grant all privileges on *.* to root@'%' identified by 'root';
mysql>flush privileges;
登陸
mysql -u root -p
輸入密碼
mysql 下有好幾個結尾爲cnf的文件,它們的做用分別是。
a、my-small.cnf:是爲了小型數據庫而設計的。不該該把這個模型用於含有一些經常使用項目的數據庫。
b、my-medium.cnf:是爲中等規模的數據庫而設計的。若是你正在企業中使用RHEL,可能會比這個操做系統的最小RAM需求(256MB)明顯多得多的物理內存。因而可知,若是有那麼多RAM內存可使用,天然能夠在同一臺機器上運行其它服務。
c、my-large.cnf:是爲專用於一個SQL數據庫的計算機而設計的。因爲它能夠爲該數據庫使用多達512MB的內存,因此在這種類型的系統上將須要至少1GB的RAM,以便它可以同時處理操做系統與數據庫應用程序。
d、my-huge.cnf:是爲企業中的數據庫而設計的。這樣的數據庫要求專用服務器和1GB或1GB以上的RAM。
這些選擇高度依賴於內存的數量、計算機的運算速度、數據庫的細節大小、訪問數據庫的用戶數量以及在數據庫中裝入並訪問數據的用戶數量。隨着數據庫和用戶的不斷增長,數據庫的性能可能會發生變化。
備註:這裏咱們根據實際狀況,選擇了"my-medium.cnf"進行配置。
刪除空用戶,加強安全
目前爲止咱們都是以"root"的身份進行的,可是當咱們切換至普通用戶登陸MySQL時,直接輸入"mysql"就進去了,咱們剛纔不是設置密碼了嗎?怎麼就失效了呢?說明有空用戶存在。先用命令"exit"退出,在按照下面命令進行修正。
解決步驟以下:
以MySQL用戶"root"用密碼形式登陸。
mysql -u root -p
刪除空用戶,強烈建議。
mysql>delete from mysql.user where user='';
刷新權限表,以即可以使更改當即生效。
mysql>flush privileges;
輸入"exit",退出MySQL。
mysql>exit
再從新以"mysql"登陸測試
mysql發現以"mysql"登陸已經失效,必須以"mysql –u root -p"才能登陸。