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