麒麟、QT5.9.2、mysql-5.7.37,编译mysql驱动
一、MySQL安装
1. 下载mysql
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
2. 安装
安装经验:
我使用的qt版本是5.14.?? 忘记是多少了 遇到的问题不多
1.如果遇到缺少某些共享库的错误可以联网使用命令安装
apt-get install 共享库名*
然后 按 y 按 回车
为什么使用apt-get 命令而不用yum和rpm
因为麒麟系统软件库没有yum 和rpm命令 所以最终尝试了好久才发现这样安装的方法
例如 缺少libaio.so.1 则:
apt-get install libaio*
然后 按 y 按 回车 将所有的装上就好2.如果遇到其他问题或者安装上了库还是提示库没有装上等错误,重启系统尝试3。如果还有其他问题 那就自己探索一下吧 也可以联系我帮助一起探索。
1)添加用户和组
$> sudo groupadd mysql
$> sudo useradd -r -g mysql -s /bin/false mysql
安装mysql
$> sudo cd /usr/local
$> sudo tar zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
$> sudo ln -s mysql-5.7.37-linux-glibc2.12-x86_64 mysql
$> sudo cd mysql
$> sudo mkdir mysql-files
$> sudo chown mysql:mysql mysql-files
$> sudo chmod 750 mysql-files
$> sudo bin/mysqld --initialize --user=mysql
注:执行上条语句的时候,会自动生成一个root的默认初始密码,一定记住,如果看不懂,可以把结果复制下来保存一下。
$> sudo bin/mysql_ssl_rsa_setup
开机自动启动
$> sudo cp support-files/mysql.server /etc/init.d/mysql.server
$> sudo update-rc.d -f mysql.server defaults
设置数据库编码为utf8,编辑 “/etc/my.cnf” 文件,添加如下内容:
[client]
default_character_set=utf8mb4[mysqld]
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
启动数据库
$> systemctl start mysql
添加mysql,到PATH,编辑文件
$> sudo vi /etc/profile
添加如下内容到文件结尾
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME
配置生效
$> source /etc/profile
使用的初始密码登录,修改默认密码
$> mysql -uroot -p
mysql> alter user 'root'@'localhost' identified by '密码';
mysql> flush privileges;
mysql> exit;
二、编译Qt的mysql驱动
1. 配置mysql的动态库
创建动态库符号连接
$> cd /usr/lib64
$> sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.20 libmysqlclient.so.20
编辑 /etc/ld.so.conf 文件
$> sudo echo /usr/local/mysql/lib >> /etc/ld.so.conf
$> sudo ldconfig
2. 编译驱动
进入mysql驱动源代码目录
$> cd/opt/Qt5.9.2/5.9.2/Src/qtbase/src/plugins/sqldrivers/mysql
$> sudo /opt/Qt5.9.2/5.9.2/gcc_64/bin/qmake "INCLUDEPATH+=/usr/local/mysql/include" "LIBS+=-L/usr/local/mysql/lib -lmysqlclient" mysql.pro
$> sudo make
拷贝编译好的驱动到插件目录
$> cd /opt/Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers
$> sudo mv libqsqlmysql.so libqsqlmysql.so.old
$> sudo cp /opt/Qt5.9.2/5.9.2/Src/qtbase/src/plugins/sqldrivers/plugins/sqldrivers/libqsqlmysql.so
查看驱动依赖
$> cd /opt/Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers
$> ldd libqsqlmysql.so
注释,如果没有 not found 字样,就没有问题了。
三、创建数据库并授权
创建数据库
mysql> create database 数据库名称;
创建用户
mysql> CREATE USER 'sqluser'@'%' IDENTIFIED BY 'password';
授权
mysql> grant all privileges on 数据库名称.* to 'sqluser'@'%';