Linux:MariaDB

RHEL 7、 CentOS 7 以及最新的 Fedora 系统中,将 MariaDB 作为默认的数据库管理系统

MariaDB 和 MySQL 在性能上基本保持一致,两者的操作命令也十分相似。

yum install mariadb mariadb-server

mysql_secure_installation

在确认 MariaDB 数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据
库的安全性和正常运转,需要先对数据库程序进行初始化操作:mysql_secure_installation。

这个初始化操作涉及下面 5个步骤:

 设置 root 管理员在数据库中的密码值 (注意,该密码并非 root 管理员在系统中的密码,
这里的密码值默认应该为空,可直接按回车键)。
 设置 root 管理员在数据库中的专有密码。
 随后删除匿名账户,并使用 root 管理员从远程登录数据库,以确保数据库上运行的业
务的安全性。
 删除默认的测试数据库,取消测试数据库的一系列访问权限。
 刷新授权列表,让初始化的设定立即生效。

在很多生产环境中都需要使用站库分离的技术(即网站和数据库不在同一个服务器上),
如果需要让 root 管理员远程访问数据库,可在上面的初始化操作中设置策略,以允许 root 管
理员从远程访问。然后还需要设置防火墙,使其放行对数据库服务程序的访问请求,数据库
服务程序默认会占用 3306 端口,在防火墙策略中服务名称统一叫作 mysql:

firewall-cmd --permanent --add-service=mysql

firewall-cmd --reload

一切准备就绪。现在我们将首次登录 MariaDB 数据库。其中, -u 参数用来指定以 root
管理员的身份登录,而-p 参数用来验证该用户在数据库中的密码值。

mysql -u root -p

将 root 管理员在数据库管理系统中的密码值修改:set password=PASSWORD('新密码');

管理账户以及授权

使用 root 管理员登录数据库管理系统,然后按照“ CREATE USER 用户名@主机名 IDENTIFIED BY '密码'; ”
的格式创建数据库管理账户。

CREATE USER luke@localhost IDENTIFIED BY 'linuxprobe';

grant命令用于为账户进行授权,其常见格式如表

举例:针对 mysql 数据库中的 user 表单向账户 luke 授予查询、更新、删除以及插入等权限

grant select,update,delete,insert on mysql.user to luke@localhost;

GRANT SELECT,UPDATE,DELETE,INSERT ON mysql.user TO luke@localhost;

接下来,查询一下luke的权限:

show GRANTS for luke@localhost;

SHOW GRANTS FOR luke@localhost;

移除刚才的授权:

REVOKE SELECT,UPDATE,DELETE,INSERT ON mysql.user FROM luke@localhost;

创建数据库与表单

use 数据库名;

create table 数据表名(字段名 类型名,............);

数据库的备份及恢复

mysqldump 命令用于备份数据库数据,格式为“ mysqldump [参数] [数据库名称]”。

其中参数与 mysql 命令大致相同, -u 参数用于定义登录数据库的账户名称, -p 参数代表密码提示符。

下面将 linuxprobe 数据库中的内容导出成一个文件,并保存到 root 管理员的家目录中:

mysqldump -u root -p linuxprobe > /root/linuxprobeDB.dump

恢复数据库:

先创建一个要恢复的数据库

mysql -u root -p linuxprobe < /root/linuxprobeDB.dump


创建中文数据库:

create database scholl default charset utf8;

或者:create database scholl default charset utf8mb4;

use scholl;

drop database if exists scholl;


解决报错:错误1130- Host xxx is not allowed to connect to this MariaDb server

授权法

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

// %:表示从任何主机连接到mysql服务器

FLUSH   PRIVILEGES;

或者

GRANT ALL PRIVILEGES ON *.* TO 'user'@'116.30.70.187' IDENTIFIED BY 'password' WITH GRANT OPTION;

//表示从指定ip从任何主机连接到mysql服务器

FLUSH   PRIVILEGES;
 

改user数据表法

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入MySQL后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root'  and host='localhost';
mysql>select host, user from user;
然后重启MySQL服务。或再执行 执行一个语句 mysql>FLUSH RIVILEGES 使修改生效。

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值