##################1.数据库简介#########################################
数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
折
目前有许多数据库产品,如Oracle、Sybase、db2,mysql,Informix、Microsoft SQL Server、Microsoft Access、Visual FoxPro等产品各以自己特有的功能,在数据库市场上占有一席之地。
我们这篇文章呢给大家介绍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 的名字。
############################2.Mariadb数据库的安装和基本配置##############################
<1>安装Mariadb数据库
[root@localhost ~]# yum install mariadb-server -y ##安装mariadb
[root@localhost ~]# systemctl start mariadb ##启动mariadb服务
[root@localhost ~]# mysql ##进入数据库
<2>启动Mariadb数据库
<3>首次登陆修改密码 (首次登陆不需要密码 )
[root@localhost ~]# netstat -antlpe |grep mysql ##校验mariadb的监听端口,查看mysql端口是否开放
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 27 51499 2667/mysqld
[root@localhost ~]# systemctl stop firewalld ##关闭防火墙
[root@localhost ~]# vim /etc/my.cnf ##mariadb主配置文件
编写:skip-networking=1 ##跳过网络接口开启服务
[root@localhost ~]# systemctl restart mariadb
[root@localhost ~]# netstat -antlpe |grep mysql ##无输出,表示数据库在网络上开启的接口已关闭
[root@localhost ~]# mysql
<5>使用mysql_secure_installation工具进行数据库安全设置,根据提示完成操作:
mysql_secure_installation ##设置密码(除输入密码外一路回车)
set root password [Y/n] ##设置root用户密码
Remove anonymous users [Y/n] ##不允许匿名用户登陆
Disallow root login remotely [Y/n] ##阻止允许root用户远程登陆
Remove test database and access to it [Y/n] ##删除出入数据库的接口
Reload privilege tables now [Y/n] ##刷新数据库
mysql -uroot -p ##登陆(需输入密码)
[root@node1 ~]# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n]
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n]
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n]
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n]
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
##################################3.数据库的基本操作####################################
客户端程序通用选项
-u --user ##指定登陆用户
-h --host ##指定登陆主机
-p --password ##指定密码登陆
--protocol={tcp|socket|memory|pipe} #指定协议
-P --port ##指定端口,默认监听端口tcp/3306
--socket ##指定本地连接的sock文件
--compress ##数据传输采用压缩格式
-D --database ##指定连接口默认使用的数据库
-H --html ##指定产生html输出
-X --xml ##指定产生xml输出
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
基本操作
SHOW DATABASES; ##显示数据库
CREATE DATABASE database_name ; ##创建一个数据库
USE database_name; ##进入数据库
SHOW tables; ##显示数据库表
(现在表为空)
CREATE TABLE table_name; ## ( ##创建数据库表的字段 name VARCHAR(20), age VARCHAR(10))
ALTER TABLE table_name add sex VARCHARAR(5) ; ##添加字段age
ALTER TABLE table_name DROP age; ##删除age字段
ALTER TABLE table_name ADD age VARCHAR(5) AFTER name; ##在name字段后添加字段age
DESC/DESCRIBE table_name ; ##查看表的结构
INSERT INTO table_name VALUES (‘wxh’,’M’); ##向表中插入数据
SELECT * FROM table_name ; ##查询表的索引
UPDATE table_name SET attribute=value WHERE attribute > value ; ##更新数据库表将user1的age设置为=20
DELETE FROM table_name WHERE attribute = value; ##将数据库表中的user1用户删除
DROP DATABASE database_name; ##删除数据库
FLUSH PRIVILEGES; ##刷新数据库信息
##################4.网页模式创建数据库############################################
[root@localhost ~]# yum install httpd php php-mysql -y ##安装阿帕奇、php-mysql、php
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@localhost html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 ##解压php数据库软件
[root@localhost html]# ls
phpMyAdmin-3.4.0-all-languages phpMyAdmin-3.4.0-all-languages.tar.bz2
[root@localhost html]# rm -fr phpMyAdmin-3.4.0-all-languages.tar.bz2 ##删除安装包
[root@localhost html]# ls
phpMyAdmin-3.4.0-all-languages
[root@localhost html]# mv phpMyAdmin-3.4.0-all-languages/ mysqladmin ##修改数据库软件名称
[root@localhost html]# ls
mysqladmin
[root@localhost html]# cd /mysqladmin
[root@localhost mysqladmin]# cp config.sample.inc.php config.inc.php ##复制新文件,根据快速安装步骤说明
[root@localhost mysqladmin]# firefox #打开浏览器进入网页,输入172.25.254.***/mysqladmin进行登录
进入网页后,可以选择语言为中文,输入用户名以及数据库密码用网页登录数据库:
登录成功后界面:
新建数据库框中写入数据库名westos–写入数据表名字linux,创建表,及表的结构,填入内容。
#####################5.用户和访问权限##########################################################
建立用户:
CREATE USER user@localhost identified by ‘haha’;
CREATE USER user@’%’ identified by ‘haha’;
localhost表示本地用户,’%’表示任何客户端可以登录,可以远程登录,identified by 后面加用户密码
用户授权:
GRANT INSERT,UPDATE,DELETE,SELECT on haha.* to user@localhost;
GRANT SELECT on mariadb.* haha@’%’;
查看用户授权:
SHOW GRANTS FOR user@localhost;
重载授权表:
FLUSH PRIVILEGES;
撤销用户授权:
REVOKE UPDATE on haha.* from user@localhost;
删除用户:
DROP USER user@localhost;
<1>创建用户
授权user1用户密码为passwd1,并且只能在本地(@localhost)查询(SELECT)数据库的所有内容( .)授权user2用户密码为passwd2,并且能从远程任意主机(@’%’)登陆mysql,并且可以对mysql数据库(mysql.*)做任意操作(ALL)
<2>用户授权
授权user1用户,只能从本地对westos数据库拥有INSERT,UPDATE操作权力
<3>刷新授权表
FLUSH PRIVILEGES;
<4>查看用户授权
SHOW GRANTS FOR user1@localhost;
<5>撤销用户权限
REVOKE UPDATE, on westos.* from wxh@localhost;
<6>删除用户
DROP USER user1@localhost;
也可以在网页中看到数据库的变化,这里就不给出截图了,只要掌握方法,自己可以看到效果。
#############################6.更改数据库root密码#########################################
[root@localhost ~]# systemctl stop mariadb.service ##关闭
[root@localhost ~]# mysqld_safe --skip-grant-tables & ##跳过授权表并打入后台
[1] 1751
[root@localhost ~]# 180526 02:40:53 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. ##后台运行
180526 02:40:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
[root@localhost ~]# mysql
MariaDB [(none)]> update mysql.user set Password=password('123') where User='root'; ##更改密码
MariaDB [(none)]> select * from mysql.user; ##查看内容
MariaDB [(none)]> quit[root@localhost ~]# fg ##调入后台
mysqld_safe --skip-grant-tables^Z ##按Ctrl+z退出
[1]+ Stopped mysqld_safe --skip-grant-tables
[root@localhost ~]# killall -9 mysqld_safe ##结束后台
[1]+ Killed mysqld_safe --skip-grant-tables
[root@localhost ~]# ps aux | grep mysql ##过滤所有mysql的进程
[root@localhost ~]# kill -9 32342 ##结束进程
[root@localhost ~]# ps aux | grep mysql
[root@localhost ~]# systemctl start mariadb ##开启
[root@localhost ~]# mysql -uroot -p ##再次登陆
Enter password:
###########################7.数据库的备份及恢复#########################################
mysqldump -uroot -predhat --all-database 备份所有数据库
mysqldump -uroot -predhat --all-database --no-data 只备份数据库的表框架
mysqldump -uroot -predhat westos 备份westos库
mysqldump -uroot -predhat westos > /mnt/westos.sql 备份westos库并保存到/mnt/westos.sql中
mysql -uroot -prdhat -e "drop database westos;" 删除westos库
mysql -uroot -predhat -e "show databases;" 查看数据库中的库
[root@localhost ~]# mysql -uroot -p123 -e "show databases;"
[root@localhost ~]# mysqldump -uroot -p123 --all-database
[root@localhost ~]# mysqldump -uroot -p123 --all-database --no-data ##查看所有数据结构
[root@localhost ~]# mysqldump -uroot -p123 westos > /mnt/westos.sql ##指定westos数据库的资料备份
[root@localhost ~]# mysql -uroot -p123 -e "drop database westos;" ##删除数据库
[root@localhost ~]# mysql -uroot -p123 -e "show databases;" ##查看数据库(里面已经没有westos的数据库)
[root@localhost ~]# ls /mnt/
恢复方法一:
vim /mnt/westos.sql
编写:
CREATE DATABASE westos; 加入数据库的创建并使用
USE westos;
[root@localhost ~]# vim /mnt/westos.sql ##修改备份文件
[root@localhost ~]# mysql -uroot -p123 < /mnt/westos.sql ##恢复westos数据库
注意:当备份的数据库不存在时,会报错(例:删除westos数据库)
[root@localhost ~]# mysql -uroot -p123 -e "select * from westos.linux" ##恢复后,登陆数据库查看方法二:
[root@localhost ~]# mysql -uroot -p123 -e "drop database westos;" ##删除westos数据库
[root@localhost ~]# vim /mnt/westos.sql
[root@localhost ~]# mysql -uroot -p123 -e "CREATE DATABASE westos;" ##建立westos数据库
[root@localhost ~]# mysql -uroot -p123 westos < /mnt/westos.sql ##数据恢复
[root@localhost ~]# mysql -uroot -p123 -e "show databases;" ##恢复后,登陆数据库查看