一、卸载mysql
因为很久之前装过mysql,很多东西忘了,所以在写下这篇文章总结时就准备重新来一遍。
1、打开控制面板,点击程序和功能,卸载MySQL;
2、win+r键,运行regedit,按HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\序列找到文件MySQL、MySQLD Service并删除,没有就不用删除;
3、然后在C:\ProgramData目录下找到MySQL文件夹并删除。如果没有权限就在安全里面设置,然后电脑重启就能删除了。
4、删除安装目录,如果删除不了就在任务管理器找到mysqld,结束进程。然后再删除
5、在cmd中依次运行,停止服务:net stop mysql ,删除服务sc delete MySQL。不然下次安装不能注册,写到这里的时候就是我刚刚花了几个小时才解决这个坑
二、安装mysql
点击底部“No thanks, just start my download.”即可开始下载
2、解压到安装目录,解压后的目录并没有my.ini文件,在安装根目录下添加 my.ini,比如我这里是:H:\MySQL\mysql-8.0.15-winx64\my.ini,写入基本配置:
[mysqld]#设置3306端口
port=3306
#设置mysql的安装目录
basedir=H:\MySQL\mysql-8.0.15-winx64#设置mysql数据库的数据的存放目录
datadir=H:\MySQL\Data#允许最大连接数
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=3306default-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
三、下载Navicat for MySQL
详细图解如何注册 Navicat for Mysql
四、连接数据库
importpymysql#打开数据库连接
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()