mariadb数据库管理系统是MYSQL的一个分支,主要由开源社区在维护,采用GPL授权许可,是由MYSQL创始人麦克尔·维德纽斯主导开发的。
1.mariadb的安装
用yum仓库(7.0)安装mariadb-server.x86_64 ,如果版本安装的和虚拟机的不匹配,则会出现无法restart的情况。
2、安全初始化
在默认情况下数据库的网络接口是完全开放的,所以为了安全起见,我们应该手动将网络接口关掉
vim /etc/my.cnf
修改之后重启mariadb服务
数据库起始的状态是没有密码的,没有密码设定可以被任意用户访问和任意主机通过远程访问,所以需要进行安全设定
输入命令 mysql_secure_installation 就可以设定密码了,然后根据提示完成后面的步骤
提示的含义如下图
密码的设定
禁止匿名用户登录设定
禁止其他主机远程登录数据库
删除文件库不允许访问
重新加载表
全部设定完就可以用root用户进行登陆了 密码为刚才设定的密码,如下图
3.数据库的管理
*)建立
SHOW DATABASES; ##列出库
CREATE DATABASE www; ##建立一个名为www的库
CREATE TABLE linux ( ##建立表
-> username varchar(50) not null,
-> password varchar(50) not null
-> );
INSERT INTO linux VALUES('wz','1'); ##插入数据到linux表中
SELECT * FROM linux; ##查询所有字段到linux表中
SELECT username,password from linux; ##查询指定字段在linux表中
*)更改
UPDATE linux SET password=password('123') where username='wz'; 修改linux表中username字段下wz对应的passwd字段的值为123并加密(不可见)
UPDATE linux SET password='123' where username='wz'; 修改linux表中username字段下wz对应的passwd字段的值为123(可见)
ALTER TABLE linux ADD class varchar(20); 在表中创建一个新字段class
ALTER TABLE linux DROP class; 从linux表中删除class字段
ALTER TABLE linux ADD age varchar(20) AFTER password; 在指定位置(password)后面创建一个新字段
ALTER TABLE linux RENAME redhat; 将linux表的名字改为redhat
*)删除
DELETE FROM redhat where username='wz'; 删除表中的一个字段中的一个数据
*) 用户授权
CREATE USER wz@'localhost' identified by '123'; 创建一个本地用户wz,密码为123,该用户可直接通过密码登陆
但是此用户无法查看数据库,也无法写如图,它所看到的数据库是空的。
而真正的数据库是这个样子
GRANT SELECT,INSERT on www.* TO wz@localhost; 对普通用户wz授予对www数据库的 INSERT 权限
(权限代表是否允许在表里插入数据)
我们可以看到wz用户不仅可以查看数据库,还可以在表中插入数据,如下图
SHOW GRANTS FOR lee@localhost; 查看用户wz的权限
REVOKE INSERT ON www.* FROM wz@localhost; 去掉wz用户对www表的insert权限,如图,我们看到权限列表里面没有了insert权限了
4.数据库的密码管理
mysqladmin -uroot -pwestos password lee
当超级用户密码忘记时:
systemctl stop mariadb
执行跳过mysql认证的命令 mysqld_safe --skip-grant-tables &
然后更新root用户的user表的password字段UPDATE mysql.user SET Password='westos' WHERE User='root'; ##明码,用命令SELECT * FROM mysql.user;可以看到root的密码
UPDATE mysql.user SET Password=password('westos') WHERE User='root'; ##用命令SELECT * FROM mysql.user;看到的是经过加密的密码
kill -9 mysql的所有进程的id
然后重启maeiadb服务 systemctl start mariadb就可以了
5数据库的备份
mysqldump -uroot -pwestos westos > /mnt/westos.sql 将www数据库备份到/mnt/www.sql中
mysqldump -uroot -pwestos www --no-data 表示 只备份www数据库框架,不备份数据
mysqldump -uroot -pwestos --all-database 备份所有的数据库及内容
mysqldump -uroot -pwestos --all-database --no-data 备份所有的数据库框架,不备份内容
恢复方式1
先建立一个新的空的数据库 mysql -uroot -pwestos -e "CREATE DATABASE westos;"
然后将备份文件中的内容全部导入到新建立的数据库中 mysql -uroot -pwestos qaq < /mnt/www.sql
恢复方式2
编辑文件 /mnt/www.sql 写入建立新数据库的内容,然后直接导入即可
mysql -uroot -pwestos < /mnt/westos.sql