Python学习之数据库编程

一、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


       通过上面几个步骤我们就可以在不知道密码的情况下,对密码进行修改,修改密码时一定要注意第四步,进程一定要被结束,不然我们登录一直会跳过授权表。

    

猜你喜欢

转载自blog.csdn.net/m0_37717595/article/details/80521097
今日推荐