ubuntu20.04 安装和配置mysql
1. 安装mysql
sudo apt install mysql-server
2.配置mysql
2.1 查看账号和密码
sudo vim /etc/mysql/debian.cnf
2.2 使用随机账号和密码登陆mysql
mysql -u 账号 -p
2.3 切换数据库
use mysql
2.4 设置root字段为空
update user set authentication_string='' where user='root';
2.5 修改root密码,如果出现错误,执行flush privileges;后,再修改密码
alter user 'root'@'localhost' identified with mysql_native_password by 'password';
2.6 重启服务
exit
service mysql restart
2.7 使用root登陆
mysql -u root -p
2.8 选中数据库
use mysql
2.9 查看账号和主机,这时root是只能本地登陆有local标志
select host,user from user;
2.10 允许root远程登陆
update user set host='%' where user='root';
2.11 刷新数据
flush privileges;
2.12 查看3306端口,开放情况.127.0.0.1就是只能本机才能访问3306端口
netstat -an | grep 3306
2.13 开放其它机器连接3306端口,找到bind-address = 127.0.0.1,并在前面加上#注释掉
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
2.14 重启mysql,这时候,mysql配置就完成,其它机器就可以连接了。
service mysql restart
3 .Qt5.15.2 安装,官方只提供在线安装,插件一定要选openssl,Source也要选中,因为要编译mysql,下载Mysql,下载zip压缩包,下载后解压
3.1 安装完成后,找到安装Qt 目录中的\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql目录,打开pro文件,做如下修改,mysql目录根据自己解压的mysql目录配置使用左斜杠.
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#QMAKE_USE += mysql
win32:LIBS += -LD:/Software/mysql-8.0.25-winx64/lib -llibmysql
INCLUDEPATH += D:/Software/mysql-8.0.25-winx64/include
DEPENDPATH += D:/Software/mysql-8.0.25-winx64/include
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
DESTDIR = ./Mydll
3.2 选择mingw64位,Release版本后(这里因为下载的mysql也是64位的,所以只做编译64位mingw的dll例子),点击编译后会提示pri文件找不到,不用管,只要编译能过就行,在\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\目录下会生成Release生成的目录,打开里面的Mydll,里面有qsqlmysql.dll,qsqlmysql.dll.debug
3.3 复制这两个文件到Qt 目录下的\Qt\5.15.2\mingw81_64\plugins\sqldrivers\目录中去
3.4 回到解压的mysql目录中进行lib目录中找到libmysql.dll,复制到\Qt\5.15.2\mingw81_64\bin\目录中去.这样Qt编译和部署Mysql就完成。
4,新建例子pro 中加入QT += sql ,窗体中加入如下代码,然后运行,这时候应该会报QSqlDatabase: QMYSQL driver not loaded,当缺少libmysql.dll,也会报这个,支持的库里面会显示已经支持mysql了。
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
5,经过多方分析后发现,mysql8.0.25使用了ssl,所以呢,安装Qt的时候勾选了openssl,进入Qt 安装目录\Qt\Tools\OpenSSL\Win_x64\bin\目录下,复制libcrypto-1_1-x64.dll和libssl-1_1-x64.dll,到运行程序目录下,再次运行,大部份人已经不会再报错了。
6,但是呢把程序打包后,放到另一台全新电脑上去,发现运行还是会报错还是报同样的错误QSqlDatabase: QMYSQL driver not loaded,这就像见鬼了一样。没办法,只能通过模块使用分析软件,来分析,看看问题出在哪里,分析后发现libssl-1_1-x64.dll模块,系统根本就没有识别出版本,分析后发现这里ssl使用了vc 运行库,由于新电脑里面没有装vc运行库,所以出错了,然后导致Qt 报模块未加载。我从我电脑上分析出缺少的vc库文件为4个分别是msvcp140.dll,msvcr100.dll,vcruntime140.dll,vcruntime140_1.dll,将编译电脑上的这4个文件放到运行程序中,新电脑再次运行,发现已经成功加载,不再报错。
如果有同学不想安装vc运行库,可以联系我我单独把这4个库使用的文件发给你.