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 使修改生效。