你应该知道的MySQL的命令和PyMySQL

发布时间:2025-05-14 07:34:23 作者:益华网络 来源:undefined 浏览量(0) 点赞(0)
摘要:MySQL MySQL是一个「关系型」数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一。 在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一种关系数

MySQL

MySQL是一个「关系型」数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一。

在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

MySql安装

安装和配置

下面(以CentOS Linux环境为例)。

Linux下有一个MySQL的分支版本,名为MariaDB,它由MySQL的一些原始开发者开发,有商业支持,旨在继续保持MySQL数据库在GNU GPL下开源(因为大家担心MySQL被甲骨文收购后会不再开源)。

如果决定要直接使用MariaDB作为MySQL的替代品,可以使用下面的命令进行安装。

yum install mariadb mariadb-server 

如果要安装官方版本的MySQL,可以在MySQL官方网站下载安装文件。首先在下载页面中选择平台和版本,然后找到对应的下载链接。下面以MySQL 5.7.26版本和Red Hat Enterprise Linux为例,直接下载包含所有安装文件的归档文件,解归档之后通过包管理工具进行安装。

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar 

如果系统上有MariaDB相关的文件,需要先移除MariaDB相关的文件。

yum list installed | grep mariadb | awk {print $1} | xargs yum erase -y

接下来可以按照如下所示的顺序用RPM(Redhat Package Manager)工具安装MySQL。

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

可以使用下面的命令查看已经安装的MySQL相关的包。

rpm -qa | grep mysql 

启动MySQL服务

先修改MySQL的配置文件(/etc/my.cnf)添加一行skip-grant-tables,可以设置不进行身份验证即可连接MySQL服务器,然后就可以以超级管理员(root)身份登录。

vim /etc/my.cnf 

[mysqld] skip-grant-tables datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid

接下来可以使用下面的命令来启动MySQL。

service mysqld start 

在CentOS 7中建议使用下面的命令来启动MySQL。

systemctl start mysqld 

使用MySQL客户端工具连接服务器。

命令行工具:

mysql -u root 

修改超级管理员(root)的访问口令为i_LOVE_macos_123。

use mysql; update user set authentication_string=password(i_LOVE_macos_123) where user=root; flush privileges;

将MySQL配置文件中的skip-grant-tables去掉,然后重启服务器,重新登录。这一次需要提供用户名和口令才能连接MySQL服务器。

systemctl restart mysqld mysql -u root -p 

也可以选择图形化的客户端工具来连接MySQL服务器,可以选择下列工具之一:

MySQL Workbench(官方提供的工具) Navicat for MySQL(界面简单优雅,功能直观强大) SQLyog for MySQL(强大的MySQL数据库管理员工具)

MySQLl命令

MySQL进入与退出

mysql –uusername -ppassword (进入)

exit (退出)

库级操作语句

显示所有的库:show databases; 创建库:create database [if not exists] db_name; 删除库:drop database [if exists] db_name; 进入数据库:use db_name;

表级操作语句

显示所有的表:show tables; 创建表:create table [if not exists] tb_name (create definition…); 显示创建表的信息:show create table tb_name; 删除表:drop table tb_name;

注意:语句结束符:「每个语句都以 ; 或者 \G 结束」

插入数据

全字段插入:INSERT INTO tb_name VALUE (all_values); 一般只用这种

查询数据

SELECT field_names FROM tb_name; SELECT * FROM tb_name; SELECT field_names FROM tb_name WHERE conditions;

修改数据

修改所有数据:UPDATE tb_name SET field_1=value_1 ; 修改多个:UPDATE tb_name SET field_1=value_1, field_2=value_2 …; 修改满足条件的数据:UPDATE tb_name SET field_1=value_1 WHERE conditions;

删除数据

删除表中所有数据:DELETE FROM tb_name; 删除表中满足条件的数据:DELETE FROM tb_name WHERE conditions;

 

数值类型

字符类

 Python连接Mysql

Python连接Mysql,用的是pymysql

import pymysql config = {     host: 127.0.0.1,     port: 3306,     user: root,     passwd: ,     charset: utf8,     cursorclass: pymysql.cursors.DictCursor } conn = pymysql.connect(**config) conn.autocommit(1) cursor = conn.cursor() try:     # 创建数据库     DB_NAME = test     cursor.execute(DROP DATABASE IF EXISTS %s % DB_NAME)     cursor.execute(CREATE DATABASE IF NOT EXISTS %s % DB_NAME)     conn.select_db(DB_NAME)     # 创建表     TABLE_NAME = user     cursor.execute(CREATE TABLE %s(id int primary key,name varchar(30)) % TABLE_NAME)     # 批量插入纪录     values = []     for i in range(20):         values.append((i, kk + str(i)))     cursor.executemany(INSERT INTO user values(%s,%s), values)     # 查询数据条目     count = cursor.execute(SELECT * FROM %s % TABLE_NAME)     print(total records:, cursor.rowcount)     # 获取表名信息     desc = cursor.description     print("%s %3s" % (desc[0][0], desc[1][0]))     cursor.scroll(10, mode=absolute)     results = cursor.fetchall()     for result in results:         print(result) except:     import traceback     traceback.print_exc()     # 发生错误时会滚     conn.rollback() finally:     # 关闭游标连接     cursor.close()     # 关闭数据库连接     conn.close()

 【编辑推荐】

为什么没人告诉我Android手机居然还能有线上网? 2020年还在用Windows 8.1?其实该操作系统并不老土 微软通过这些新的攻击检测工具增强了Linux的安全性 代码不止|想制胜海外市场?Google 来帮你! 代码不止|Google 带你感受科技带来的无限可能

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!