MySQL是一个通用的开源关系数据库,用于在Python Web应用程序中创建,读取,更新和删除数据。本文让我们学习如何在Ubuntu 18.04.4 LTS上安装MySQL,然后在命令行客户端中运行一些SQL查询。
我们不讨论使用对象关系映射器(ORM)通过Python应用程序进行连接,但是可以将这些步骤用作使用ORM(如SQLAlchemy或Peewee)的先决条件。
我们需要的工具
在本教程中,我们将使用以下组件:
Ubuntu 18.04.4 LTS(本教程也适用于其他Ubuntu版本)
MySQL
安装MySQL
我们可以使用apt包管理器来安装MySQL。首先,确保你的软件包是最新的。打开终端并运行这个apt命令。
[linuxidc@linux:~/www.linuxidc.com]$ sudo sudo apt-get update
我们需要安装mysql-server软件包,该软件包下载所需的文件,配置初始数据库设置并处理将MySQL作为系统服务运行。运行此apt命令以启动该过程。
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt install mysql-server
当提示您是否要安装新软件包时,输入“ y”。
要求安装新root密码的管理屏幕将出现在软件包安装过程的中间。输入您选择的新密码两次,安装将继续。
在安装过程中间,将出现一个要求输入一个root密码。输入新密码两次,安装将继续。(如果不小心忘记了,请参见下面的解决方法)
稍后安装将完成,您将回到命令提示符。
安装完成后,登录MySQL的时候如果出现了如下错误(在安装时没有设置MySQL root密码或者MySQL root密码忘记了):
[linuxidc@linux:~/www.linuxidc.com]$ mysql -u root -p
[linuxidc@linux:~/www.linuxidc.com]$ mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
因为安装的过程中没设置密码,可能密码为空,但无论如何都进不去MySQL。
------------------------------------分割线------------------------------------
下面是忘记root密码或者没有设置root密码的解决方法:
第一步:修改mysqld.cnf配置文件
在Ubuntu终端上输入sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf,进入到这个配置文件,然后在这个配置文件中的[mysqld]这一块中加入skip-grant-tables这句话。
作用:就是让你可以不用密码登录进去MySQL。
保存退出。输入:service mysql restart,重新启动mysql。
第二步:设置root密码
在终端上输入mysql -u root -p,遇见输入密码的提示直接回车即可,进入MySQL后,分别执行下面三句话:
use mysql; 然后敲回车
update user set authentication_string=password("你的密码") where user="root"; 然后敲回车
flush privileges; 然后敲回车
结果如下图:
然后输入quit,退出MySQL。
第三步:注释掉skip-grant-tables
重新进入到mysqld.cnf文件中去把刚开始加的skip-grant-tables这条语句给注释掉,如下图。
再返回终端输入mysql -u root -p,应该就可以进入数据库了。
第四步:问题解决
如果此时还是报出错误,那么就需要返回第三步中,把注释掉的那条语句重新生效(就是删除#符号),重新进入MySQL中,先任意选择一个数据库,比如use mysql;
然后输入select user, plugin from user; 看下图:
Enter password:
ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded