MySQL:安装和连接

数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

 

三种类型的数据库:
• 关系型数据库:MySQL、Microsoft Access、SQL Server、Oracle、...
• 非关系型数据库:MongoDB、BigTable(Google)、Membase...
• 键值数据库:Redis、Riak、Apache Cassandra(Facebook)、LevelDB(Google) ...

 

【环境】

Ubuntu 19.10

MySQL  8.0

shell端

 

【安装】

$sudo apt-get install mysql-server

 

【运行】

$service mysqld start

$mysql -u root  # 默认的 MySQL 安装之后根用户是没有密码

mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";  # 设置密码

 

【Python-MySQLdb】

Python-MySQLdb 是一个接口程序,Python 通过它对 mysql 数据实现各种操作。

在编程中,会遇到很多类似的接口程序,通过接口程序对另外一个对象进行操作。

接口程序就好比钥匙,把锁打开就可以操作门里面的东西了。

$sudo apt-get install python-mysqldb  # shell端安装Python-MySQLdb

import MySQLdb  # python 交互模式下检查是否安装成功

 

【连接数据库】

$mysql -u root -p

mysql> create database mill character set utf8;  # 建立数据库 ok

Query OK, 1 row affected (0.00 sec)  # 数据库建立成功后的提示

注意上面的指令,如果仅仅输入:create database qiwsirtest,也可以,但是,我在后面增加了 character se t utf8,意思是所建立的数据库 qiwsirtest,编码是 utf-8 的,这样存入汉字就不是乱码了。

通过下方代码,用 Python 通过已经安装的 mysqldb 来连接这个名字叫做 mill 的库

import MySQLdb

con = MySQLdb.connect(host="localhost",user="root",passwd="123456",db="mill",port=3306,charset="utf8")

逐个解释上述命令的含义:

• host:等号的后面应该填写 mysql 数据库的地址,因为就数据库就在本机上(也称作本地),所以使用 local host,注意引号。

如果在其它的服务器上,这里应该填写 ip 地址。一般中小型的网站,数据库和程序都是在 同一台服务器(计算机)上,就使用     localhost 了。

• user:登录数据库的用户名,这里一般填写"root",还是要注意引号。如果读者命名了别的用户名,数据库管理者提供了专有用户   名,就更改为相应用户。但是,不同用户的权限可能不同,所以,在程序中,如果 要操作数据库,还要注意所拥有的权限。在这里用 root,就放心了,什么权限都有啦。不过,这样做,在大 型系统中是应该避免的。

• passwd:上述 user 账户对应的登录 mysql 的密码。我在上面的例子中用的密码是"123123"。不要忘记引 号。

• db:就是刚刚通 create 命令建立的数据库,我建立的数据库名字是"qiwsirtest",还是要注意引号。

看官如果 建立的数据库名字不是这个,就写自己所建数据库名字。

• port:一般情况,mysql 的默认端口是 3306,当 mysql 被安装到服务器之后,为了能够允许网络访问,服务 器(计算机)要提供一个访问端口给它方法。

• charset:这个设置,在很多教程中都不写,结果在真正进行数据存储的时候,发现有乱码。

这里我将 qiwsirt est 这个数据库的编码设置为 utf-8 格式,这样就允许存入汉字而无乱码了。

注意,在 mysql 设置中,ut f-8 写成 utf8,没有中间的横线。但是在 Python 文件开头和其它地方设置编码格式的时候,要写成 ut f-8。切记!

注:connect 中的 host、user、passwd 等可以不写,只有在写的时候按照 host、user、passwd、db (可以 不写)、port 顺序写就可以,

端口号 port=3306 还是不要省略的为好,如果没有 db 在 port 前面,直接写 3306 会报错.

 

【常见错误】

1. mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法

  https://www.cnblogs.com/cpl9412290130/p/9583868.html

 

2. ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded

  解决方法: sudo /etc/init.d/mysql stop

        sudo /etc/init.d/mysql start

 

3. Ubuntu下安装MYSQL出现 E: 无法定位软件包问题

  https://blog.csdn.net/qq_35393693/article/details/85159143

 

4. Ubuntu “软件包 libpython3.5-dev 需要重新安装,但是我无法找到相应的安装文件”的问题

  https://blog.csdn.net/hector_aries/article/details/78088029

 

5. ERROR 2002 (HY000): Can't connect to local MySQL server through socket

  https://blog.csdn.net/Homewm/article/details/81628116

 

 

posted @ 2020-07-06 23:00  颗粒成仓  阅读(194)  评论(0编辑  收藏  举报