天天看點

Centos7下安裝MySQL

MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,采用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有将MySQL閉源的潛在風險,是以社群采用分支的方式來避開這個風險。MariaDB的目的是完全相容MySQL,包括API和指令行,使之能輕松成為MySQL的代替品。

在Centos7下,使用指令安裝mysql,會安裝成mariadb。

在這裡先介紹安裝MariaDB,原因如上。

安裝MariaDB

#安裝
>>>yum install mariadb-server mariadb 

#啟動
>>>systemctl start mariadb

#進入MySQL
>>>mysql -u root -p

#指令行變成如下,可能有點不習慣
MariaDB [(none)]> 


#P.S.
#相關指令
>>>systemctl start mariadb #啟動MariaDB
>>>systemctl stop mariadb #停止MariaDB
>>>systemctl restart mariadb #重新開機MariaDB
>>>systemctl enable mariadb #設定開機啟動
           

安裝MySQL

#下載下傳,在這裡使用的是指令行下載下傳,也建議在圖形界面下載下傳,然後上傳至伺服器
>>>wget http://dev.mysql.com/get/mysql-community-release-el7-noarch.rpm

#使用rpm安裝
>>>rpm -ivh mysql-community-release-el7-noarch.rpm

#使用yum安裝mysql-community-server
>>>yum install mysql-community-server

#啟動服務
>>>service mysqld start

#進入mysql,第一次進入無密碼
>>>mysql -u root -p

#指令行變成如下
mysql> 
           

配置MySQL

編碼配置

#進入配置檔案,若未安裝vim,建議先使用指令yum install vim安裝vim
>>>vim /etc/my.cnf

#最後加上編碼配置
[mysql]
default-character-set =utf8

#此處字元編碼必須和/usr/share/mysql/charsets/Index.xml中一緻。
#不過一般情況下使用的都是utf8
           

設定密碼

#下面三種方法需要進入mysql
>>>mysql -u root -p

#方法一
mysql>insert into user(host,user,password) values('%','user_name',password("password");
#方法二
mysql>set password for user_name = password("password");
#方法三
mysql>grant all on *.* to user_name@% identified by "password";

#下面這一種方法可直接在shell下設定密碼
>>>mysqladmin -u root password "password"
           

遠端連接配接

#進入mysql
>>>mysql -u root -p

#把在所有資料庫的所有表的所有權限指派給位于所有IP位址的root使用者。
mysql> grant all privileges on *.* to root@'%'identified by "password";
           

P.S.上文引号中的user_name表示資料庫的使用者名,password表示對應使用者的密碼。即這兩項是由讀者自行定義的。

Mysql建立使用者失敗

# mysql在my.ini的配置檔案中設定了嚴格模式,是以我們需要進行修改

# 第一步,尋找配置檔案
>>>whereis my.ini

# 第二步,根據上一步結果進行vim編輯
>>>vim /../my.ini

# 第三步,在vim裡面搜尋sql-mode,删除STRICT_TRANS_TABLES,儲存退出即可

# 第四步,保險起見,使剛剛的配置檔案立即生效
>>>source /../my.ini
           

Centos7支援中文

# 編輯檔案
>>>vim /etc/my.cnf
# 在對應[xx]下增加修改如下代碼
[client]
port = 
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld]
port = 
socket = /var/lib/mysql/mysql.sock
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

[mysql]
no-auto-rehash
default-character-set=utf8
# 儲存退出,重新開機服務
# 重新登陸mysql檢查是否成功,方法見下
           

Ubuntu16.04支援中文

>>>sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 在對應[xx]下增加以下内容,如果不存在[xx]自行增加
[mysqld]
character_set_server=utf8
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
[mysqld_safe]
default-character-set=utf8
[client]
default-character-set=utf8
# 重新開機mysql
>>>service mysql restart
# 進入mysql檢視配置參數
>>>mysql -uroot -p
# 檢視database 的value變為utf8即可
>show variables like '%character%';

# p.s.如果之前建立了表,表編碼不會改變
           

MySQL報錯“1366 - Incorrect integer value: ” XXXXXXX’ at row 1 ”

修改方法:(兩種,建議第二種)

1:指令行 set names gbk;(此為設定通信編碼)

2:my.cnf中查找sql-mode

将 
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",

修改為 
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",
           

重新開機mysql後即可

關于my.cnf和my.ini的說明

my.cnf常見于Linux系統,my.ini常見與windows系統,二者都是屬于mysql的配置檔案。一般好像在一個系統下就是隻出現一種配置檔案,具體差別沒有深入了解,修改配置檔案,根據自己的系統進行查找修改配置檔案即可

Mysql互動環境自動補全

# 修改配置檔案
>>>vim /etc/my.cnf
# 在[mysql]部分添加auto-rehash
# 儲存退出,重新開機
>>>service mysqld restart
           

繼續閱讀