Mariadb基础配置

mysql与mariadb

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险.大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL

安装
sudo apt install mariadb-server//安装

安装上之后,发现和mysql不一样的地方,它没有弹出设置密码的那个蓝色的界面,MaraiDB 的默认密码是空的,但是只能用 linux下的root 用户登录

  • 验证安装
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
  • 创建用户并授权
create user 'Yhch'@'%' identified by 'password';
//表示创建一个名为Yhch的用户,让其可以以任何IP地址访问数据库
//与之对应的是'localhost',表示只能在本机访问,不能远程连接/,关于远程连接后面会提到


grant all privileges on *.* to 'Yhch'@'%' identified by
'password' with grant optoin;
//表示把操作所有表(on *.*)的所有的权限(all privileges),授予给用户'Yhch'

flush privileges
//最后刷新一下配置



//如果你懒得创建新的用户,那么你可以直接在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
解决远程连接和中文乱码的问题
  • 远程连接问题

  • 这里涉及到三个细节

    1.允许用户非本地IP地址登录(前面已解决改'localhost'为'%')

    2.授权用户有远程登录的权限(前面已解决grant all privileges)

    3.mariadb 从安全角度考虑,默认绑定了,只允许本地连接,需要修改配置文件,mariadb9的配置文件路径如下

cd /etc/mysql/mariadb.conf.d/

sudo vi 50-server.cnf  
Mariadb基础配置_第1张图片
pic1.png
//进入到该目录用编辑器打开50-server.cnf这个文件

(# band-address = 127.0.0.1)//将其注释掉
Mariadb基础配置_第2张图片
pictwo.png

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

Mariadb基础配置_第3张图片
picthree.png
  • 中文乱码的问题(建表时指定字符集为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

扩展

  • 导入本地数据到远程服务器的mysql上
load data local infile '/home/yhch/homework/CLASSINFO.csv' into table ClassInfo 
fields terminated by ','
ignore 1 lines;//去表第一行即表头,原理和之前的oracle一样
  • 数据库迁移(将线上的数据库,连同数据迁移到本地数据库)
//从远程数据库导出数据库

sudo mysqldump -h 193.112.77.165 -uroot -pyourpassword mydatabase --default-character-set=utf8 --opt -Q -R --skip-lock-tables>/home/yhch/mydatabas
picfour.png
//导入到本地数据库
mysql> source /home/yhch/mydatabase.sql;

效果

Mariadb基础配置_第4张图片
picfive.png

关于作者

个人博客:https://Yhchdev.github.io

你可能感兴趣的:(Mariadb基础配置)