1 说明
使用环境为:Windows7 VS2015 QT5.6.0(64位),MYSQL 5.7.13(64位)。
网上各种错误、模糊、抽象的资料,配置环境花了半天,痛定思痛,总结出来,方便后来人。
原创,转载请注明出处。
2 方法/步骤
2.1 下载和安装QT和MYSQL
QT和MYSQL安装部分先后顺序。(VS2015当然也要安装,此处不做详细描述)。
2.1.1 下载安装MYSQL
2.1.1.1 下载MYSQL
下载地址:http://dev.mysql.com/downloads/mysql/
上面是官网压缩版的地址,我当时(20160723)下载了最新版61位的软件,(mysql-5.7.13-winx64.zip)
注:下载时要注册,注册是免费的,和谐友爱,注册后下载。
2.1.1.2 安装MYSQL
解压软件,得到mysql-x.x.xx-winx64文件夹。
新建个my.ini,并删掉my-default.ini文件。my.ini文件内容如下,请注意存放数据库数据的目录里面必须是空的(datadir字段):
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql\
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
2.1.1.3 设置mysql环境变量
修改Path变量,在最后加上mysql压缩包的bin目录,例如我的是:
C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Dell\Dell Data Protection\Access\Advanced\Wave\Gemalto\Access Client\v5\;C:\Program Files (x86)\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;D:\data_store\svn\bin;C:\Program Files\VisualSVN Server\bin;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;%USERPROFILE%\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;E:\mysql\mysql-5.7.13-winx64\bin
2.1.1.4 安装并启动mysql服务
管理员的身份运行cmd.exe(搜索cmd,然后右键,以管理员身份运行),执行以下命令:
mysqld install
mysqld --initialize-insecure --user=mysql
net start mysql
简单说下以上命令作用,第一条:安装mysql服务;第二条:初始化mysql,置root密码为空;第三条,启动mysql服务。
2.1.1.5 尝试登录mysql,确认mysql安装OK
mysql -uroot –p
PS:设置密码的方法:mysqladmin -u root -p password XXX
2.2 下载和安装QT
QT安装地址:http://download.qt.io/archive/qt/
安装对应的版本,我的是,进入5.6,进入5.6.0,选择VS2015的64位安装包。
当然,安装了QT5.6.0,也要安装VS2015社区版,安装VS2015插件(Qt5Package.vsix)。
2.3 QT5.6.0使用MYSQL
很关键,网上一堆人说需要编译MYSQL的库,事实上,该版本不需要!(其他版本不做讨论)。
拷贝mysql目录mysql-5.7.13-winx64\lib里面的libmysql.dll文件到QT安装目录的bin目录(本人是:C:\Qt\Qt5.6.0_vs2015\5.6\msvc2015_64\bin)即可。
否则连接数据库会报错:QSqlDatabase: QMYSQL driver not loaded
2.3.1 测试代码
QSqlDatabase db = QSqlDatabase::database("QMYSQL");
db.setHostName(m_hostName);
db.setPort(m_port);
db.setDatabaseName("configuration");
v.setUserName("root");
db.setPassword("");
if (!m_db.open())
{
qDebug()<< m_db.lastError().text();
}