mysql与mariadb
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险.大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL
安装
1
| sudo apt install mariadb-server
|
安装上之后,发现和mysql不一样的地方,它没有弹出设置密码的那个蓝色的界面,MaraiDB 的默认密码是空的,但是只能用 linux下的root 用户登录
1 2 3 4 5 6
| mariadb --version //下面是返回的信息
mysqladmin Ver 9.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu on x86_64
select user,plugin from mysql.user;
|
基本配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| create user 'Yhch'@'%' identified by 'password';
grant all privileges on *.* to 'Yhch'@'%' identified by 'password' with optoins;
flush privileges
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
|
解决远程连接和中文乱码的问题
- 远程连接问题
这里涉及到三个细节
1.允许用户非本地IP地址登录(前面已解决改’localhost’为’%’)
2.授权用户有远程登录的权限(前面已解决grant all privileges)
3.mariadb 从安全角度考虑,默认绑定了,只允许本地连接,需要修改配置文件,mariadb9的配置文件路径如下
1 2 3
| cd /etc/mysql/mariadb.conf.d/
sudo vi 50-server.cnf
|

1 2 3
|
(# band-address = 127.0.0.1)
|

mysql5.7 配置文件位置略有不同

- 中文乱码的问题(建表时指定字符集为utf-8也可以)
1 2 3 4 5 6 7 8 9 10 11 12 13
| vi /etc/mysql/conf.d/mysql.cnf [mysql] default-character-set=utf8 //添加这一行
vi /etc//mysql.conf.d/
[mysql] character-set-server=utf8 //添加这一行
service service
|
扩展
1 2 3
| load data local infile '/home/yhch/homework/CLASSINFO.csv' into table ClassInfo fields terminated by ',' ignore 1 lines;//去表第一行即表头,原理和之前的oracle一样
|
- 数据库迁移(将线上的数据库,连同数据迁移到本地数据库)
1 2 3
| //从远程数据库导出数据库
sudo mysqldump -h 193.112.77.165 -uroot -pyhchdev666 mydatabase --default-character-set=utf8 --opt -Q -R --skip-lock-tables>/home/yhch/mydatabas
|

1 2
| mysql> source /home/yhch/mydatabase.sql;
|
效果

投喂我
写文不易,如果本文对你有帮助,点击Donate,微信和支付宝投喂我