1.拆卸
1.首先卸载之前的mysql
2.查看服务是否被删除
3.删除注册表
①HEKY_LOCAL_MACHINE\SOFTWARE\MYSQL目录删除
②HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目录删除
③HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目录删除
④HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL目录删除
4.检查全局有没有my.ini,否则会影响安装
2.下载mysql
可以使用sohu的镜像:http://mirrors.sohu.com/mysql/MySQL-8.0/
新建ini文件
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=C:\Program Files\MySQL\MySQL Server 8.0
# 设置mysql数据库的数据的存放目录
datadir=C:\Program Files\MySQL\MySQL Server 8.0\Data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
3 . 命令
mysqld --initialize --console
#记录下密码
mysqld --install
net start mysql
mysql -uroot -p
#输入密码
#修改密码为123456
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
4.Qt连接
部分Qt没有mysql驱动,所以连接有问题
步骤
- 安装Qt源码
- 打开Qt源码 F:\Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql
pro修改如下
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#QMAKE_USE += mysql
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
DESTDIR = ../mysql/lib/
INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
DEPENDPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include"
LIBS += "C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib"
- F:\Qt\Qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql\lib 可以找到我们编译完成的驱动
- 复制粘贴到指定文件夹 F:\Qt\Qt5.14.1\5.14.1\mingw73_64\plugins\sqldrivers
5.还产生问题
-
qmysql driver not loaded问题解决
下载CONNECTOR下载 https://dev.mysql.com/downloads/connector/cpp/
copy文件到程序运行目录即可 -
m_oMysqlDB = QSqlDatabase::addDatabase( “QMYSQL3” ); 这个设置参数有问题