mysql與mariadb
MariaDB數(shù)據(jù)庫(kù)管理系統(tǒng)是MySQL的一個(gè)分支奄喂,主要由開源社區(qū)在維護(hù),MariaDB的目的是完全兼容MySQL我磁,包括API和命令行谍夭,使之能輕松成為MySQL的代替品氓润。開發(fā)這個(gè)分支的原因之一是:甲骨文公司收購(gòu)了MySQL后,有將MySQL閉源的潛在風(fēng)險(xiǎn)屋厘,因此社區(qū)采用分支的方式來(lái)避開這個(gè)風(fēng)險(xiǎn).大型互聯(lián)網(wǎng)用戶以及Linux發(fā)行商紛紛拋棄MySQL涕烧,轉(zhuǎn)投MariaDB陣營(yíng)。MariaDB是目前最受關(guān)注的MySQL數(shù)據(jù)庫(kù)衍生版擅这,也被視為開源數(shù)據(jù)庫(kù)MySQL的替代品澈魄。MariaDB雖然被視為MySQL數(shù)據(jù)庫(kù)的替代品,但它在擴(kuò)展功能仲翎、存儲(chǔ)引擎以及一些新的功能改進(jìn)方面都強(qiáng)過(guò)MySQL
安裝
sudo apt install mariadb-server//安裝
安裝上之后痹扇,發(fā)現(xiàn)和mysql不一樣的地方,它沒有彈出設(shè)置密碼的那個(gè)藍(lán)色的界面溯香,MaraiDB 的默認(rèn)密碼是空的鲫构,但是只能用 linux下的root 用戶登錄
- 驗(yàn)證安裝
mariadb --version
//下面是返回的信息
mysqladmin Ver 9.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu on x86_64
select user,plugin from mysql.user;
基本配置
- 登錄
$ sudo mysql -uroot -p
- 創(chuàng)建用戶并授權(quán)
create user 'Yhch'@'%' identified by 'password';
//表示創(chuàng)建一個(gè)名為Yhch的用戶,讓其可以以任何IP地址訪問(wèn)數(shù)據(jù)庫(kù)
//與之對(duì)應(yīng)的是'localhost',表示只能在本機(jī)訪問(wèn),不能遠(yuǎn)程連接/,關(guān)于遠(yuǎn)程連接后面會(huì)提到
grant all privileges on *.* to 'Yhch'@'%' identified by
'password' with grant optoin;
//表示把操作所有表(on *.*)的所有的權(quán)限(all privileges),授予給用戶'Yhch'
flush privileges
//最后刷新一下配置
//如果你懶得創(chuàng)建新的用戶,那么你可以直接在root用戶下使用,原理是一樣的,
//只是更改mysql.user這張表中的玫坛,用戶名為root的記錄
update mysql.user set plugin='' where user='root';
select user,hsot from mysql.user;
update mysql.user set host='%' where user='root';
grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
flush privileges;
systemctl restart mariadb
解決遠(yuǎn)程連接和中文亂碼的問(wèn)題
遠(yuǎn)程連接問(wèn)題
-
這里涉及到三個(gè)細(xì)節(jié)
1.允許用戶非本地IP地址登錄(前面已解決改'localhost'為'%')
2.授權(quán)用戶有遠(yuǎn)程登錄的權(quán)限(前面已解決grant all privileges)
3.mariadb 從安全角度考慮结笨,默認(rèn)綁定了,只允許本地連接,需要修改配置文件,mariadb9的配置文件路徑如下
cd /etc/mysql/mariadb.conf.d/
sudo vi 50-server.cnf
//進(jìn)入到該目錄用編輯器打開50-server.cnf這個(gè)文件
(# band-address = 127.0.0.1)//將其注釋掉
mysql5.7 配置文件位置略有不同
- 中文亂碼的問(wèn)題(建表時(shí)指定字符集為utf-8也可以)
vi /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8 //添加這一行
vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysql]
character-set-server=utf8 //添加這一行
service mysql stop
service mysal start
擴(kuò)展
- 導(dǎo)入本地?cái)?shù)據(jù)到遠(yuǎn)程服務(wù)器的mysql上
load data local infile '/home/yhch/homework/CLASSINFO.csv' into table ClassInfo
fields terminated by ','
ignore 1 lines;//去表第一行即表頭,原理和之前的oracle一樣
- 數(shù)據(jù)庫(kù)遷移(將線上的數(shù)據(jù)庫(kù),連同數(shù)據(jù)遷移到本地?cái)?shù)據(jù)庫(kù))
//從遠(yuǎn)程數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)庫(kù)
sudo mysqldump -h 193.112.77.165 -uroot -pyourpassword mydatabase --default-character-set=utf8 --opt -Q -R --skip-lock-tables>/home/yhch/mydatabas
//導(dǎo)入到本地?cái)?shù)據(jù)庫(kù)
mysql> source /home/yhch/mydatabase.sql;
效果
關(guān)于作者
個(gè)人博客:https://Yhchdev.github.io