且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

更新时间:2022-06-06 14:13:30

随着人工智能和深度学习的风暴来临,Python变得越来越火热,作者也准备从零学习这些知识,写相关文章。本篇文章讲解阿里云服务器CentOS系统下的MySQL数据库开启及配置过程,同时教大家如何编写Python操作MySQL数据库的基础代码,为后面的网络爬虫并存储至服务器打下基础。文章非常基础,希望这系列文章对您有所帮助,如果有错误或不足之处,还请海涵~

系列文章:

一. MySQL数据库开启

1.检查数据库是否安装

  • 命令:rpm -qa | grep mysql

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

2.检查MySQL服务是否开启

  • 命令:service mysqld status

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

3.开启MySQL服务

  • 命令:service mysqld start

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

可以看到 /usr/bin 目录下存在mysqladmin命令。

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

4.使用root用户登录mysql数据

  • 命令:mysqladmin -u root -p password 123456

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

但是报如下错,这是连接MySQL数据库最常见的一个错误,怎么解决呢?

mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'

5.更新root密码登录

命令如下:

--关闭服务
service mysqld stop
 
--安装赋权限
mysqld_safe --skip-grant-tables &
 
--root用户登录
mysql -u root -p 
 
--输入密码
123456
 
--使用数据库
use mysql;
 
--更新密码
update user set password=PASSWORD("123456") where user="root";
 
--更新权限
flush privileges; 
 
--退出
quit
 
--服务器重启
service mysqld restart
 
--root用户登录
mysql -u root -p 
新密码进入

如下图所示:

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

然后输入“use mysql;”使用数据库,尝试“show databases;”显示所有数据库。

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

接下来就是更新root用户的密码:

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

6.重启服务本地连接mysql数据库

  • 命令:service mysqld restart
  • 命令:mysql -u root -p

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识


二. MySQL数据库增加新用户

1.使用mysql数据库

  • 命令:use mysql;

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

2.显示所有表

  • 命令:show tables;

这里我们使用user表,定义mysql数据库的用户。

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

3.查看表结构

  • 命令:describe user;
| Host                  | char(60)                          | NO   | PRI |                            |       |
| User                  | char(16)                          | NO   | PRI |                            |       |
| Password              | char(41)                          | NO   |     |                            |       |

4.添加一个新用户yxz,密码为123456
命令如下:

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> insert into mysql.user(Host,User,Password) value ("localhost","yxz",password("123456"));
Query OK, 1 row affected, 3 warnings (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> create database Eastmount;
Query OK, 1 row affected (0.00 sec)
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Eastmount          |
| junyun             |
| mysql              |
| test               |
+--------------------+
5 rows in set (0.00 sec)
 
mysql> grant all privileges on Eastmount.* to yxz@localhost identified by "yxz";
Query OK, 0 rows affected (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql>quit;

如下图所示:

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

但是同样报错:error: 'Access denied for user 'root'@'localhost' (using password: NO)',需要像前面一样修订密码,代码如下:

[root@iZ2ze9134z8zlqupc9t6mzZ ~]# service mysqld stop
Stopping mysqld:                                           [  OK  ]
[root@iZ2ze9134z8zlqupc9t6mzZ ~]# mysqld_safe --skip-grant-tables &
[1] 24403
[root@iZ2ze9134z8zlqupc9t6mzZ ~]# 180217 13:50:37 mysqld_safe Logging to '/var/log/mysqld.log'.
180217 13:50:37 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
mysql -u yxz -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.73 Source distribution
 
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Eastmount          |
| junyun             |
| mysql              |
| test               |
+--------------------+
5 rows in set (0.00 sec)
 
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> update user set password=PASSWORD("123456") where user="yxz";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> quit;

三. SQL语句

1.root登录并进入Eastmount数据库

命令如下:

[root@iZ2ze9134z8zlqupc9t6mzZ ~]# mysql -u yxz -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73 Source distribution
 
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Eastmount          |
| test               |
+--------------------+
3 rows in set (0.00 sec)
 
mysql> use Eastmount;
Database changed
mysql> show tables;
Empty set (0.00 sec)
 
mysql>

2.创建表
命令如下:

create table student(
    id int not null primary key,
    name varchar(16) not null,
    pwd varchar(20) not null
);

3.显示表结构

  • 命令:describe student;

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

4.插入数据

  • 命令:insert into student(id,name,pwd) values(1,'yxz','111111');

5.查询数据

  • 命令:select * from student;

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

6.更新数据

  • 命令:update student set pwd='123456' where name='yxz';

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

7.删除数据

  • 命令:delete from student where id='1';

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

8.删除表

  • 命令:drop table studentl;

[CentOS Python系列] 三.阿里云MySQL数据库开启配置及SQL语句基础知识

总之,希望这篇基础文章对您有所帮助,尤其是刚接触云服务器的新手,如果您是高手,还请多提意见,共同提高。很高兴重回阿里云,开心能与大家在这里认识,希望能分享更高质量的文章帮助大家,且行且珍惜。

(By:Eastmount 2021-11-09 夜于武汉)