zoukankan      html  css  js  c++  java
  • 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

     

     

    从现在开始,种下梦想中的参天大树
  • 相关阅读:
    CF codeforces A. New Year Garland【Educational Codeforces Round 79 (Rated for Div. 2)】
    链表,结构体,指针,CG作业,删除单链表中某区间的数
    链表,结构体,指针,CG作业. 倒数第k个元素,已知带头结点的非空单链表中存放着若干整数,请找出该链表中倒数第k个元素
    codeforces 1236 A. Bad Ugly Numbers思维题!!!
    js延迟加载优化页面响应速度
    不得不知的npm常用指令
    提示框中的三角边框
    不得不提的前端性能优化
    利用带关联子查询Update语句更新数据
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
  • 原文地址:https://www.cnblogs.com/dc2019/p/13258183.html
Copyright © 2011-2022 走看看