主机环境:rhel7.0
各主机信息
主机名 | IP |
---|---|
server | 172.25.254.1 |
- MariaDB是一种数据库管理系统,是MySQL的一个分支,但是比MySQL更加优秀,可以说是MySQL的替代品。
MariaDB使用的是SQL语句。
- MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,是由原来Mysql的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器。采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
下面将对Mariadb数据库的安装,设置,Mariabd数据库的基本操作(一些基本的SQL语句)进行简要的概述。
1、Mariadb数据库的安装,开启和开机自启动的设置
- 输入命令"yum install mariadb-server.x86_64 -y"可以安装Mariadb数据库,不同的系统可能有不同的版本。
- 输入命令"systemctl start maridb"开启Mariadb数据库管理服务。
- 输入命令"systemctl enable mariadb"设置mariadb数据库开机自启动。
mysql的配置文件:
- /etc/my.cnf 主配置文件
2、Mariadb数据库的安全初始化
因为Mariadb是一个数据库管理系统,所以安全是必须的,最基本的安全初始化有下面的两个步骤。
(1)输入命令"netstat -antulpe | grep mysql"查看网络端口是否打开,如下图所示,是打开的。(默认情况下,数据库的网络接口是打开的)为了安全,需要关闭此接口。
编辑配置文件"/etc/my.cnf",在配置文件的第10行输入"skip- networking=1"来关闭端口(该语句的意思是"设置检测时略过mysql,使监听端口无法监测到mysql的端口"),重启服务后再查看,网络端口关闭。
(2)首次登陆是不需要密码。输入命令"mysql_secure_installation"来设置root用户的登陆密码,根据提示完成操作(第一次输入root密码时:因为没有密码,所以直接敲"空格"),如下图所示,输入两次密码后,系统会询问一些问题,为了安全考虑,建议全部选择"Y"。
上述两个步骤完成后,系统的网络端口关闭,且root用户需要输入密码才能登陆数据库。
(1)
查看网络端口
编辑配置文件
重启服务之后,再次查看网络端口
(2)
首次登陆,不需要密码
设置root用户的密码
为root设置登陆密码
禁止匿名用户登陆
禁止超级用户远程登陆
禁止使用并进行数据测试
重新加载权限列表
密码设定之后,需要输入密码,才能进入
1、数据库的使用
Mariadb是数据库的管理系统,使用的是SQL语句,下面将叙述在数据库的使用中常用的SQL语句,一般规范的SQL
语句是需要大写的,但小写也是可以使用的。这里使用大写。同时,必须注意的一点是:每个SQL语句后面必须
接";"。
2、数据库的显示
- "SHOW DATABASES;",显示数据库。
- "USE mysql;",进入一个数据库名为''mysql"的数据库。
- "SHOW TABLES;",进入mysql数据库后,显示数据库里的表格。
- "DESC user;",查看一个表格名为"user"的结构。
显示数据库
进入一个数据库名为''mysql"的数据库
进入mysql数据库后,显示数据库里的表格
查看一个表格名为"user"的结构
3、数据库的查询
- "SELECT * FROM user;",查看名为"user"的表格的所有内容。
- "SELECT Host,User,Password FROM user",从"user"表格中查看"Host","User"和"Password"这三个字段。
- "SELECT Host,User,Password FROM user WHERE Host='::1'",从"user"表格中查看当Host='::1'时的"Host","User"和"Password"这三个字段。
- "SELECT Host,User,Password FROM user WHERE Host='::1' AND Use='root'",从"user"表格中查看当Host='::1且User='root'时的"Host","User"和"Password"这三个字段。WHERE后面的条件可以写多个,用AND连接。
查看名为"user"的表格的所有内容
从"user"表格中查看"Host","User"和"Passwd"这三个字段
从"user"表格中查看当Host='::1'时的"Host","User"和"Password"这三个字段。
从"user"表格中查看当Host='::1且User='root'时的"Host","User"和"Password"这三个字段。
4、数据库的创建
- "CREATE DATABASE xin;",创建一个名为xin的数据库。
- "CREATE TABLE linux(*);",进入xin数据库中后,创建一个名为"linux"的表格,如下图所示,表格的格式和内容可以自己编写。这里需要注意的是:每个字段用","隔开。
- 表示:在数据库xin中新建表格linux,包括username和passwd两个字段
- 指定表格linux中username字段类型为varchar,字符长度不可超过10个,并且不能为空。
- 指定表格linux中passwd字段类型为varchar,字符长度不可超过10个,并且不能为空。
创建一个名为xin的数据库
进入xin数据库中后,创建一个名为"linux"的表格
5、数据库插入
- "INSERT INTO linux VALUES ('chen','123');",在"linux"表格中插入值,如下图所示,可以为空的字段中插入
值可以写为NULL。同时要注意的是:在数据库中使用的都是单引号,而不是双引号。
6、数据库的更改
目前数据库的名称是无法更改的,只能先对该数据库的数据进行备份,然后重新建立新的数据库,将数据导入进去。
ALTER是对表的结构进行操作
ALTER TABLE 表名 (ADD,DROP,RENAME )
- "ALTER TABLE linux ADD class varchar(20) not null;",在表格"linux"的最后添加一列"class"字段,字段类型为varchar,字符长度不可超过20个,且不能为空,即不指定添加位置时默认将字段添加到最后。
- "ALTER TABLE linux DROP class;",删除表格"linux"的"class"列。
- "ALTER TABLE linux ADD class varchar(20) AFTER username;",在表格"linux"中的"username"列后添加"class"列,字段类型为varchar,字符长度不可超过20个。
- "ALTER TABLE linux RENAME redhat;",将表格"linux"的名称改为"redhat"。
在表格"linux"的最后添加一列"class"
删除表格"linux"的"class"列
在表格"linux"中的"username"列后添加"class"列
将表格"linux"的名称改为"redhat"
UPDATE是对 表中的数据 进行操作
UPDATE 表名 SET 列名='值' ,列名='值'[WHERE条件];
- "UPDATE linux SET passwd='111'";,将表格"linux"中"passwd"这一列的值全部改为"111",显示明文。
- "UPDATE linux SET class='3' where username='chen' ";,将表格"linux"中"username=chen"。这一行的class的值改为"3"。
- "UPDATE linux SET passwd='123' where username='chen' and class='3'";,将表格"linux"中"username=chen"且"class=3"这一行的passwd的值改为'123',显示明文。
将表格"linux"中"passwd"这一列的值改为"111"
将表格"linux"中"username=chen"这一行的class的值改为"3"。
将表格"linux"中"username=chen"且"passwd=111"这一行的class的值改为"6"。
7、数据库的删除
DELETE是对表中的数据进行操作
DELETE FREOM 表名 [WHERE 条件]
如果不加WHERE条件,那么就是把表中的数据一条一条的删除。
- "DELETE FROM linux WHERE username='xiao';",删除"linux"表格中"username"是"xiao"行。
- "DELETE FROM linux ;",删除"linux"表格中的所有内容。
DROP是对表的结构进行操作
DROP TABLE 表名
DROP DATABASE 数据库名
- "DROP TABLE linux;",删除表格"linux"。
- "DROP DATABASE xin;",删除数据库"xin"。
删除"linux"表格中"username"是"xiao"行
删除"linux"表格中的所有内容
删除表格"linux"
删除数据库"xin"
8、退出数据库
- "quit",或者"exit"。退出数据库。此时可以不加";"
对于表结构的操作:
增:
- "CREATE DATABASE 数据库名;";
- "CREATE TABLE 表名(*);";
- "ALTER TABLE 表名 ADD 字段的名字 字段的类型 字段的约束;"
删:
- "DROP DATABASE 数据库名;";
- "DROP TABLE 表名;"
- "ALTER TABLE 表名 DROP 字段名;"
改:
- "ALTER TABLE 表名 change 原字段名 修改之后的字段名 字段类型 字段的约束;"
- "ALTER TABLE 表名 modify 字段名 字段类型 字段约束;"
- "ALTER TABLE 修改之前的表名 RENAME 修改之后的表名;"
这里需要注意change和modify的区别:
- change是用来修改字段的名字的。必须修改字段的名字,可以不修改字段的类型和字段的约束。但是字段的类型和字段的约束必须接在后面。即格式必须正确(原字段的名字 修改之后字段的名字 字段的类型 字段的约束)
- modify是用来修改字段的类型和字段的约束的。不可以修改字段的名字,但是修改时,格式必须正确(字段的名字 字段的类型 字段的约束)。
查:
- "SHOW DATABASES;"
- "USE 数据库名;"
- "SHOW TABLES;"
- "DESC 表名;"
对于表中数据的操作:
增:
- "INSERT INTO 表名 VALUES();"
删:
- "DELETE FROM 表名 [WHERE 条件]"
如果不加WHERE条件,那么就是把表中的数据一条一条的删除。
改:
- "UPDATE 表名 SET 列名='值' [WHERE条件];"
查:
- "SELECT * FROM 表名;"
- "SELECT 字段名 FROM 表名 [WHERE条件];"
注意:
- WHERE后面的条件可以接多个,用AND隔开。
Mariadb的使用中,有时需要添加一些其他用户,使这些用户可以登陆,并且在数据库中拥有一定的权限。其具体做法如下所示。
- "CREATE USER xin@localhost identified by '666';"。表示创建一个用户,这个用户只可以从本机登陆,登陆密码为"666"。如果将其中的"xin@localhost改 为"xin@'%'",就代表可以从任何地方登陆。
- 创建成功之后输入"SELECT User,Host FROM mysql.user ",就可以看到创建的这个用户信息。
查看用户授权信息,显示授权用户与授权域名
创建一个用户,这个用户只可以从本机登陆,登陆密码为"666"。
查询创建的这个用户的信息
这个用户创建完成后没有进行授权,虽然可以登陆,但是看不到也修改不了数据库中的任何数据。
注意:下面的授权,只是针对xin这个数据库,对别的数据库没有授权,所以对别的数据库没有任何权力。
- "GRANT SELECT on xin.* TO xin@localhost;",表示将"xin"数据库中的查看权限授权给"xin"用户。
SELECT是查看数据库的权力(SHOW DATABASES;USE XIN;SHOW TABLES;SELECT * FROM 表名;的权力)
- "SHOW GRANTS for xin@localhost;",可以查看指定用户的授权列表,如下所示,表示,"xin"用户有在"xin"数据库中查看的权力。如果授权了但是查看不到,输入"FLUSH PRIVILEGES;"可以重新加载授权表。
查看授权用户xin的授权列表
将"xin"数据库中的查看权限授权给"xin"用户
查看授权用户xin的授权列表
授权过后的"xin"用户重新登陆数据库就可以看到"xin"数据库了。
- "GRANT CREATE on xin.* TO xin@localhost;",表示将"xin"数据库中的创建表格的权限授权给"xin"用户。
CREATE是在数据库中建立表格的权力(CREATE TABLE 表名());
表示将"xin"数据库中的创建的权限授权给"xin"用户
授权过后的"xin"用户重新登陆数据库就可以在"xin"这个数据库,建立表格了。
不具有,创建别的数据库的权力,但是具有创建xin这个数据库的权力。
具有在"xin"这个数据库中新建表格的权力
还可以授予"INSERT"、"DELETE"、"UPDATE"、"ALTER"、和"DROP"等权力,只有授予过的权力才可以使用。
- "GRANT DROP on xin.* TO xin@localhost;",表示将"xin"数据库中的删除表格的权限授权给"xin"用户。
授权过后的"xin"用户重新登陆数据库就可以删除"xin"这个数据库,删除"xin"这个数据库中的表格了。
第一种:登陆进去,输入SQL语句执行;
第二种:不登陆,直接登陆语句与SQL语句结合,执行。
撤销用户权力
- "REVOKE SELECT ON xin.* FROM xin@localhost;",表示撤销用户"xin"的查看权力。
- "REVOKE CREATE,DROP ON xin.* FROM xin@localhost;",表示撤销用户"xin"的创建表格的权力,和删除表格,删除数据库的权力。
删除本地用户
- "DROP USER xin@localhost;",表示删除"xin"用户,删除后再次输入"SELECT User,Host FROM mysql.user 就看不到"xin"这个用户的信息了。
撤销用户"xin"的查看权力
撤销用户"xin"的创建表格的权力,和创建数据库的权力
删除"xin"用户
再次输入"SELECT User,Host FROM mysql.user 就看不到"xin"这个用户的信息了
在数据库的管理过程中,经常需要数据库的备份。
- "mysqldump -uroot -p123 xin > /mnt/xin.sql",可以对"xin"这个数据库进行备份,将备份文件存在/mnt/xin.sql文
件中。如下图所示,如果不小心删除了数据库"xin",那么就需要通过这个备份来恢复了。
- "mysqldump -uroot -p123 --all-database > /mnt/all.sql2",将全部数据库导入到"/mnt/all.sql2"文件中。
- "mysqldump -uroot -p123 --all-database --no-data > /mnt/xin.sql3",将全部数据库的结构(有框架无数据)导入到"/mnt/all.sql3"文件中。
- "mysqldump -uroot -p123 xin --no-data > /mnt/xin.sql4",将指定的数据库"xin"的结构(有框架无数据)导入到"/mnt/xin.sql4"文件中。
其中,目标文件是不存在,系统自动建立,不需要我们手动建立。
将全部数据库导入到"/mnt/all.sql2"文件中。
将全部数据库的结构导入到"/mnt/all.sql3"文件中。
将指定的数据库"xin"的结构导入到"/mnt/xin.sql4"文件中。
对"xin"这个数据库进行备份,将备份文件存在/mnt/xin.sql文件中。
数据恢复有两种方式:
第一种:利用命令的方式恢复
- 恢复备份时,先输入"mysql -uroot -p123 -e "CREATE DATABASE xin;",来新建一个数据库"xin",或者其他名称也可以,也可以使用命令"CREATE DATABASE xin;"在数据库内建立。
- 输入"mysql -uroot -123 xin < /mnt/xin.sql",就可以将原"xin"数据库中的数据导入到新的数据库中了。
第二种:利用修改备份文件的方式恢复
- 在备份文件的21,22行加入命令:
21CREATE DATABASE xin;
22USE xin;。如下图所示。
- 输入"mysql -uroot -123 < /mnt/xin.sql",就可以将原"xin"数据库中的数据导入到新的数据库中了。(注意:这个命令和第一种方法的命令不同,这个命令中没有写xin)
利用命令的方式恢复
新建一个数据库"xin"
将原"xin"数据库中的数据导入到新的数据库"xin"中
利用修改备份文件的方式恢复
(1)更改普通用户的密码
- "UPDATE mysql.user Password='123' WHERE User='xin'";,将表格"mysql.user"中"User='xin'"这一行的Password的值改为'123',显示明文。
- "UPDATE mysql.user SET Password=password('xin') WHERE User='xin'";,将表格"mysql.user"中"User=xin"这一行的Password的值改为'xin',并对密码进行加密,显示密文。
需要注意的是:
- 必须将密码修改为密文,才能生效,明文是不会生效的;
- 必须重启mariadb服务,才会生效。
将表格"mysql.user"中"User='xin'"这一行的Passwd的值改为'123',显示明文。
将表格"mysql.user"中"User=xin"这一行的Passwd的值改为'xin',并对密码进行加密,显示密文。
(2)更改root用户的密码
当记得root用户的密码,想要为其修改密码时,方法有两种:
第一种:
- 输入命令"mysqladmin -uroot -p123 password 888",将root用户的密码由原来的'123',改为'888'。
需要注意的是:
- 这种方法不用重启mariadb服务,此修改,立即生效。
第二种:
- 进入数据库,输入命令"UPDATE mysql.user SET Password=password('root') WHERE User='root'; "
需要注意的是:
- 必须将密码修改为密文,才能生效,明文是不会生效的;
- 必须重启mariadb服务,才会生效。
在数据库的管理中,如果忘记了root用户的密码就要对其重新进行设置,设置步骤如下所示:
- "systemctl stop mariadb"。停止Mariadb服务。
- "mysqld_safe --skip-grant-tables &"。启动安全模式,且跳过认证。注意:此时需要敲击"空格"结束。
- "mysql"。不需要密码可以直接进入数据库,输入"USE mysql"进入mysql数据库。
- "UPDATE user SET Password=password('000') where User='root';"。修改"user"表中"root"用户的密码信息,"Password=password('000')"表示密码设为"000",前面的"password"表示对"000"进行加密。
- "SELECT User Passwd FROM mysql.user;",查看密码信息是否已经更改。
- "ps aux | grep mysql","kill -9 PID"。强行结束"mysql"的所有进程。首先要将root 15500 0.0 0.0 113248 1576 pts/0 S 09:49 0:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables对应的进程号杀掉。(必须将此进程杀掉之后,重启服务才会成功。)
上述步骤完成后重新开启Mariadb服务,然后就可以输入修改后的密码登陆数据库。
停止Mariadb服务
启动安全模式,且跳过认证(此时需要敲击"空格"结束)address
不需要密码可以直接进入数据库,输入"USE mysql"进入mysql数据库
修改"user"表中"root"用户的密码信息
查看密码信息是否已经更改
没有执行,修改root用户的密码信息,之前查看的结果
执行,修改root用户的密码信息,之后查看的结果
强行结束"mysql"的所有进程
重启mariadb服务,并进行测试
- 1.配置好yum 源,下载httpd服务,并打开httpd服务,并设置为开机自启动。并关闭防火墙,或者对防火墙进行设置。
- 2.安装mariadb服务,并进行安全初始化设置(前面已经设置过)
- 3.下载压缩包:phpMyadmin-2.11.3-all-languages.tar.bz2
- 4.将其解压到http的的默认发布目录下(/var/www/html),或者如果修改了httpd服务的默认发布目录,那么就将该压缩文件放到修改之后的默认发布目录中。为了方便,将其改名为mysqladmin
- 5.安装php服务软件包:yum install php -y
- 6.查看php的支持:php -m(不支持mysql)
- 7.安装支持mysql的php服务软件包:yum search php yum install php-server -y
- 8.在/var/www/html/mysqladmin目录下,复制示例配置文件:cp config.sample.inc.php config.inc.php
(通过输入命令"less /var/www/html/mysqladmin/README":需要检查mariadb-server的版本(需要是3.23.32及以后的版本):rpm -qa | grep mariadb-server;需要检查php的版本(需要是4.1.0及以后的版本):rpm -qa | grep php)
- 9.修改配置文件config.inc.php(需要先输入命令"less Documentation.txt",查找相应的编码),将找到的编码复制到配置文件config.inc.php的第17行中
- 10.重启httpd服务:systemctl restart httpd
- 11.测试:在浏览器中输入http://172.25.254.183/mysqladmin,登陆网页模式(如果没有出来相应的界面,就需要清空网页的缓存(清空缓存的方法由两种:一种是:快捷键的方式---ctrl+alt+delete;第二种是:点击界面上的history---Clear Recent History))
1、下载httpd服务,并打开httpd服务,并设置为开机自启动。并关闭防火墙
4、将phpMyadmin-2.11.3-all-languages.tar.bz2压缩包解压到http的的默认发布目录下(/var/www/html),为了方便,将其改名为mysqladmin。
5、安装php服务软件包
6.查看php的支持
7、安装支持mysql的php服务软件包
8、在/var/www/html/mysqladmin目录下,复制示例配置文件
9、修改配置文件config.inc.php(需要先输入命令"less Documentation.txt",查找相应的编码),将找到的编码复制到配置文件config.inc.php的第17行中
10、重启httpd服务
11、测试
(1)root用户登陆(对该数据库有绝对的权限)
在浏览器中输入网址http:172.25.254.183/mysqladmin,登陆进入网页模式,下图为进入网页的登陆界面(root用户登陆)
选择语言,输入用户名和密码,进入数据库管理界面
创建一个数据库
在创建好的数据库中,创建一个表
表中的内容的插入,修改和删除
改变顺序,移动,重命名,注释,复制备份
(2)之前创建的普通用户登陆(权限要少一些)
在浏览器中输入网址http:172.25.254.183/mysqladmin,登陆进入网页模式,下图为进入网页的登陆界面(普通用户xin登陆)
选择语言,输入用户名和密码,进入数据库管理界面