一、卸载mysql
因为很久之前装过mysql,很多东西忘了,所以在写下这篇文章总结时就准备重新来一遍。
1、打开控制面板,点击程序和功能,卸载MySQL;
2、win+r键,运行regedit,按HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEventlogApplication序列找到文件MySQL、MySQLD Service并删除,没有就不用删除;
3、然后在C:ProgramData目录下找到MySQL文件夹并删除。如果没有权限就在安全里面设置,然后电脑重启就能删除了。
4、删除安装目录,如果删除不了就在任务管理器找到mysqld,结束进程。然后再删除
5、在cmd中依次运行,停止服务:net stop mysql ,删除服务sc delete MySQL。不然下次安装不能注册,写到这里的时候就是我刚刚花了几个小时才解决这个坑
二、安装mysql
1、mysql-8.0.15-winx64.zip下载地址:https://dev.mysql.com/downloads/file/?id=484900
点击底部“No thanks, just start my download.”即可开始下载
2、解压到安装目录,解压后的目录并没有my.ini文件,在安装根目录下添加 my.ini,比如我这里是:H:MySQLmysql-8.0.15-winx64my.ini,写入基本配置:
[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=H:MySQLmysql-8.0.15-winx64# 设置mysql数据库的数据的存放目录 datadir=H:MySQLData# 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8
3、在MySQL安装目录的 bin 目录下执行命令:mysqld.exe --initialize --console
需要等一会儿才有执行结果,其中包含了root 用户的初始默认密码,如下图:
记住这个密码,后续登录需要用到。要是你关快了,可以删掉初始化的 datadir 目录,再执行一遍初始化命令,又会重新生成的。
4、安装服务(以管理员身份打开cmd命令行):mysqld --install
5、启动服务:net start mysql
6、更改密码:mysql -u root -p
然后输入安装时候生成的密码,进入sql命令行后,执行sql:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你要设置的密码';
7、创建一个测试库:create database 库名;
查看所有库:show databases;
退出:exit
安装时我主要参考来源:https://www.jb51.net/article/139219.htm
三、下载Navicat for MySQL
https://blog.csdn.net/qq_27093465/article/details/52817938
详细图解如何注册 Navicat for Mysql
四、连接数据库
import pymysql # 打开数据库连接 db=pymysql.connect('localhost','root','密码','库名') # 创建游标对象 cs=db.cursor() # 使用 execute() 方法执行 SQL,如果表存在则删除 cs.execute('drop table if exists student') sql='create table student( id int primary key not null auto_increment, name varchar(20) not null, t_id int(20), e_id int(20), createtime datetime DEFAULT CURRENT_TIMESTAMP, updatetime datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )' cs.execute(sql) # SQL 插入语句 s1="insert into student (name,t_id,e_id)values('小花','3','4')" try: cs.execute(s1)# 执行sql语句 db.commit()# 提交到数据库 except: print('+-+-+') db.rollback()# 如果发生错误则回滚 # 关闭数据库连接 db.close()