一、mariadb安装与使用
[root@server0 ~]# yum install mariadb-server -y #安装数据库的服务端 [root@server0 ~]# systemctl start mariadb #启动数据库服务 [root@server0 ~]# mysql_secure_installation #设置我们数据库的安全属性,简单来讲就是密码权限等等 [root@server0 ~]# mysql -uroot -p123456 #以root身份密码是123456登录数据库
二、数据库的基本操作
show databases;
该命令用于显示有哪些数据库
create database mariadb_learn #创建一个名为maridb_learn的数据库
use mariadb_learn #使用数据库mariadb_learn
show tables; #显示当前数据库中的表
create table usrinfor(username varchar(10),passwd varchar(10))
在当前数据库中新建一个表名为userinfor的表格,表格有两列信息username和
password,可变字节长度,10个字符宽度。
desc userinfor; #描述userinfor的具体信息
insert into userinfor values('user1','123456'); #向userinfor表中添加一行信息
select * from userinfor; #选择所有信息从userinfor表中导出
update userinfor set password='654321' where usrname = 'user1'; #将表中usrname的信息为‘user1’的password改为‘654321’
delete from userinfor where usrname = 'user1'; #从userinfor的表中删除usrname信息为‘user1’的所有信息
drop table userinfor; #删除一个userinfor的表
drop database mariadb_learn; #删除名为mariadb_learn的数据库
三、数据库中文编码问题
在上面我们对userinfor表添加信息时,因为信息中有中文因此出现乱码,如下:
我们先查看mysql的编码格式:
show variables like 'character_set_%';
(一)临时修改数据库的编码格式
修改除了 character_set_filesystem 之外的其他变量的编码格式为 utf8;MariaDB [(none)]> set character_set_server='utf8'; MariaDB [(none)]> set character_set_database = 'utf8';但是,很坑的是,当重启服务后,刚才的设置就直接失效,也是挺崩溃的 ; 大招在下面 。
(二)永久修改数据库编码格式
配置 mysql 的配置文件,配置文件在 /etc/my.cnf.d/ 目录,设置编码格式: 第一个文件修改: /etc/my.cnf.d/client.cnf
7 [client]
8 default-character-set=utf8
第二个文件修改: /etc/my.cnf.d/server.cnf
11 # this is only for the mysqld standalone daemon
12 [mysqld]
13 character-set-server=utf8
重启mariadb服务后,character_set_database并没有进行修改,因此,为了一步到位,直接设置character_set_database编码格式为utf8,如下:
MariaDB [(none)]> set character_set_database = 'utf8';
由于编码格式是在表创建的时候被使用的,因此一个表的编格式一旦确定就不会被更改,所以我们的userinfor表所用的编码格式依旧是未更改之前的,添加中文信息依旧会是乱码。
四、数据库密码忘记
我们为了安全需要给数据库加上密码,但是有时候忘记密码怎办呢?我们可以使用下面这种方式来暴力修改密码。
1. 关闭mariadb服务
systemctl stop mariadb
2. 跳过授权表
mysqld_safe --skip-grant-table &
3. 修改root密码
mysql
> update mysql.user set Password=password('123456') where
User='root';
4. 关闭跳过授权表的进程,启动mariadb服务,使用新密码即可
ps aux | grep mysql
kill -9 pid
mysql -uroot -p
通过上面几个步骤我们就可以在不知道密码的情况下,对密码进行修改,修改密码时一定要注意第四步,进程一定要被结束,不然我们登录一直会跳过授权表。