Linux---mariadb数据库的基本操作及数据库用户管理和资料备份
mariadb 简介
MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可 MariaDB 的目的是完全兼容MySQL ,包括 API 和命令行,是 MySQL 的代替品。
MariaDB 由 MySQL 的创始人 Michael Widenius (英语:Michael Widenius )主导开发,他早前曾以 10 亿美元的价格,将自己创建的公司 MySQL AB 卖给了 SUN ,此后,随着SUN 被甲骨文收购, MySQL 的所有权也落入 Oracle 的手中MariaDB 名称来自 Michael Widenius 的女儿 Maria 的名字。
一、数据库的设置
[[email protected] ~]# yum install mariadb-server -y ##安装数据库
[[email protected] ~]# systemctl start mariadb ##打开设置开启
[[email protected] ~]# mysql ##不需要密码就可以登陆
[[email protected] ~]# netstat -antlpe | grep mysql ##查看数据库接口mysql,3306接口打开不安全
[[email protected] ~]# systemctl stop firewalld ##关闭防火墙
[[email protected] ~]# vim /etc/my.cnf ##修改配置文件
##关闭数据库接口
[[email protected] ~]# systemctl restart mariadb ##重启数据库
[[email protected] ~]# netstat -antlpe | grep mysql ##重启后再次查看数据库接口。不对外开放
[[email protected] ~]# mysql_secure_installation ##修改数据库密码
##写入密码
[[email protected] ~]# mysql -uroot -p ##登陆数据库 注意:密码不要写在-p后(quit退出)
二、数据库编辑
1.数据库基本操作:
[[email protected] ~]# mysql -uroot -p
Enter password:
MariaDB [(none)]> SHOW DATABASES; ##显示数据库(相当于ls)
MariaDB [(none)]> USE mysql; ##进入数据库(相当于cd)
MariaDB [mysql]> SHOW TABLES; ##显示数据库中的表格(相当于ls)
MariaDB [mysql]> SELECT * FROM user; ##查询user表中的所有信息
MariaDB [mysql]> SELECT User,Host,Password FROM user;
##查询user表中的User,Host,Password信息
MariaDB [mysql]> SELECT User,Host,Password FROM user Where User='root'; ##查询user表的User,Host,Password信息中使用名为root的用户
MariaDB [mysql]> DESC user; ##查询user表的数据结构(有哪些字段)
2.新建数据库:
[[email protected] ~]# mysql -uroot -p
Enter password:
MariaDB [(none)]> CREATE DATABASE westos; ##新建数据库
MariaDB [(none)]> SHOW DATABASES; ##列出当前已有的库
MariaDB [(none)]> USE westos;
MariaDB [westos]> SHOW TABLES;
MariaDB [westos]> CREATE TABLE linux ( ##新建数据库westos中的表格
-> username varchar(6) not null, ##创建字段username,字符长最大为6,不能为空
-> password varchar(50) not null); ##创建字段password,字符长最大为50,不能为空
MariaDB [westos]> SHOW TABLES;
MariaDB [westos]> DESC linux; ##列出表结构
MariaDB [westos]> INSERT INTO linux values ('dmf','999'); ##在linux表格中插入信息
MariaDB [westos]> SELECT * FROM linux; ##查看linux表格中的所有信息
3.更改数据库结构:
[[email protected] ~]# mysql -uroot -p
Enter password:
MariaDB [(none)]> USE westos;
MariaDB [westos]> SHOW TABLES;
MariaDB [westos]> ALTER TABLE linux RENAME messages; ##修改表格名字,将linux修改为messages
MariaDB [westos]> SHOW TABLES; ##查看表格
MariaDB [westos]> ALTER TABLE messages RENAME linux; ##修改表格名字
MariaDB [westos]> ALTER TABLE linux ADD age varchar(50); ##在linux表格中添加age字段,随意位置
MariaDB [westos]> select * from linux; ##查看表格中信息,age字段在最后
MariaDB [westos]> ALTER TABLE linux DROP age; ##在linux表格中移除age字段
MariaDB [westos]> ALTER TABLE linux ADD age varchar(50) AFTER username; ##在linux表格中添加age字段,位置在username后
MariaDB [westos]> select * from linux; ##查看表格中信息,age字段指定在username字段的后面
MariaDB [westos]> ALTER TABLE linux DROP age; ##在linux表格中移除age字段
4.更改数据库数据
MariaDB [westos]> UPDATE linux SET password='888' WHERE username='dmf'; ##修改linux表格中的password信息
MariaDB [westos]> select * from linux;
MariaDB [westos]> DELETE FROM linux WHERE username='dmf'; ##删除表格中的某一行
MariaDB [westos]> select * from linux;
MariaDB [westos]> DROP TABLE linux; ##删除表格
MariaDB [westos]> DROP DATABASE westos; ##删除数据库
MariaDB [(none)]> SHOW DATABASES; ##查看数据库
5.在网页中创建数据库
[[email protected] ~]# yum install httpd php php-mysql -y ##安装httpd,php
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# cd /var/www/html
[[email protected] html]# ls
[[email protected] html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 ##解压
[[email protected] html]# ls
[[email protected] html]# rm -fr phpMyAdmin-3.4.0-all-languages.tar.bz2 ##删除压缩包
[[email protected] html]# mv phpMyAdmin-3.4.0-all-languages/ mysqladmin ##更改名字为myaqladmin
[[email protected] html]# cd mysqladmin/
[[email protected] mysqladmin]# ls
[[email protected] mysqladmin]# cp config.sample.inc.php config.inc.php
在网页浏览:172.25.254.128/mysqladmin
##创建westos数据库
##在westos数据库里创建linux表格
##创建linux表格里的字段
##填写表格信息
##完成创建信息
三、数据库用户管理
用户授权
MariaDB [(none)]> SELECT User FROM mysql.user; ##查看用户
MariaDB [(none)]> CREATE USER [email protected]'localhost' identified by '123'; ##用户创建(用户名dmf,密码123)
##[email protected] 本地用户 ##[email protected]‘%’ 远程用户
MariaDB [(none)]> SELECT User FROM mysql.user; ##查看用户
MariaDB [(none)]> GRANT SELECT on westos.* to [email protected]; ##用户授权可查看权限
##在网页上的数据库可以查看数据库中表格的内容
MariaDB [(none)]> GRANT UPDATE on westos.* to [email protected]; ##用户授权更改权限
##在网页上的数据库可以更改数据库中表格的内容
MariaDB[(none)]> SHOW GRANTS FOR [email protected]; ##查看用户权限
MariaDB [(none)]> FLUSH PRIVILEGES; ##重载授权表
MariaDB [(none)]> REVOKE SELECT on westos.* FROM [email protected]; ##撤销用户可查看权限
MariaDB [(none)]> REVOKE UPDATE on westos.* FROM [email protected]; ##撤销用户可更改权限
MariaDB [(none)]> DROP user [email protected]; ##删除用户
四.用户密码更改
1.若用户密码忘记,关闭数据库服务,跳过认证列表
[[email protected] ~]# systemctl stop mariadb
[[email protected] ~]# mysqld_safe --skip-grant-tables & ##将mysql打入后台,ctrl+c结束
2.进入数据库修改(mysql回车即可)
[[email protected] ~]# mysql
MariaDB [(none)]> update mysql.user set Password=password('123') where User='root'; ##密码不加括号修改的密码为明文,加括号是加密方式
MariaDB [(none)]> select* from mysql.user;
##可以看到密码是加密的
3.查看mysql相关进程,全部关闭
[[email protected] ~]# fg
[[email protected] ~]# killall -9 mysqld_safe
[[email protected] ~]# ps aux | grep mysql ##查看mysql的进程
[[email protected] ~]# kill -9 1882
[[email protected] ~]# ps aux | grep mysql ##留下root进程
4.关闭后重启mysql服务,新密码登陆即可
[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# mysql -uroot -p123
五.数据库资料备份
[[email protected] ~]# mysql -uroot -p123 -e "show databases;" ##查看数据库
[[email protected] ~]# mysqldump -uroot -p123 --all-database ##查看所有数据库资料
[[email protected] ~]# mysqldump -uroot -p123 --all-database --no-data ##查看所有数据结构
[[email protected] ~]# mysqldump -uroot -p123 westos > /mnt/westos.sql ##指定westos数据库的资料备份
[[email protected] ~]# mysql -uroot -p123 -e "drop database westos;" ##删除数据库
[[email protected] ~]# mysql -uroot -p123 -e "show databases;" ##查看数据库(里面已经没有westos的数据库)
[[email protected] ~]# ls /mnt/
方法一:
[[email protected] ~]# vim /mnt/westos.sql ##修改备份文件
[[email protected] ~]# mysql -uroot -p123 < /mnt/westos.sql ##数据恢复.注意:当备份的数据库不存在时,会报错(例:删除westos数据库)
[[email protected] ~]# mysql -uroot -p123 -e "select * from westos.linux" ##恢复后,登陆数据库查看
方法二:
[[email protected] ~]# mysql -uroot -p123 -e "drop database westos;" ##删除westos数据库
[[email protected] ~]# vim /mnt/westos.sql
[[email protected] ~]# mysql -uroot -p123 -e "CREATE DATABASE westos;" ##建立westos数据库
[[email protected] ~]# mysql -uroot -p123 westos < /mnt/westos.sql ##数据恢复
[[email protected] ~]# mysql -uroot -p123 -e "show databases;" ##恢复后,登陆数据库查看