linux - mysql编程使用
本文最后更新于:2021年4月23日 下午
概览:linux - mysql编程使用.
安装mysql
命令:
1 |
|
安装 libmysqlclient-dev
安装完这个之后,才会有对应的头文件!!
但是不幸的是,安装中碰到了依赖问题
折叠/查看代码
1
2
3
4
5
6
7
8
9
10
11
12
13
colourso@colourso-virtual-machine:/usr/include$ sudo apt-get install libmysqlclient-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libmysqlclient-dev : 依赖: libssl-dev (>= 1.1.1-1ubuntu2.1~18.04.5~) 但是它将不会被安装
依赖: zlib1g-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
于是一个一个解决
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
colourso@colourso-virtual-machine:/usr/include$ sudo apt install libssl-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libssl-dev : 依赖: libssl1.1 (= 1.1.1-1ubuntu2.1~18.04.9) 但是 1.1.1c-1ubuntu4 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
colourso@colourso-virtual-machine:/usr/include$ sudo apt install libssl1.1
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
libssl1.1 已经是最新版 (1.1.1c-1ubuntu4)。
libssl1.1 已设置为手动安装。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 47 个软件包未被升级。
colourso@colourso-virtual-machine:/usr/include$ sudo apt install libssl-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libssl-dev : 依赖: libssl1.1 (= 1.1.1-1ubuntu2.1~18.04.9) 但是 1.1.1c-1ubuntu4 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
colourso@colourso-virtual-machine:/usr/include$ sudo apt install libssl1.1=1.1.1-1ubuntu2.1~18.04.9
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包将被【降级】:
libssl1.1
升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 47 个软件包未被升级。
需要下载 1,301 kB 的归档。
解压缩后将会空出 81.9 kB 的空间。
您希望继续执行吗? [Y/n] y
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates/main amd64 libssl1.1 amd64 1.1.1-1ubuntu2.1~18.04.9 [1,301 kB]
已下载 1,301 kB,耗时 5秒 (241 kB/s)
正在预设定软件包 ...
dpkg: 警告: 即将把 libssl1.1:amd64 从 1.1.1c-1ubuntu4 降级到 1.1.1-1ubuntu2.1~18
.04.9
(正在读取数据库 ... 系统当前共安装有 153861 个文件和目录。)
准备解压 .../libssl1.1_1.1.1-1ubuntu2.1~18.04.9_amd64.deb ...
正在解压 libssl1.1:amd64 (1.1.1-1ubuntu2.1~18.04.9) 并覆盖 (1.1.1c-1ubuntu4) ...
正在设置 libssl1.1:amd64 (1.1.1-1ubuntu2.1~18.04.9) ...
正在处理用于 libc-bin (2.30-0ubuntu2) 的触发器 ...
然后重新安装libmysqlclient-dev
1
2
3
4
5
6
7
8
9
10
11
12
13
colourso@colourso-virtual-machine:/usr/include$ sudo apt-get install libmysqlclient-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libmysqlclient-dev : 依赖: zlib1g-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
只剩下了一个问题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
olourso@colourso-virtual-machine:/usr/include$ sudo apt-get install zlib1g-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
zlib1g-dev : 依赖: zlib1g (= 1:1.2.11.dfsg-0ubuntu2) 但是 1:1.2.11.dfsg-1ubuntu3 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
colourso@colourso-virtual-machine:/usr/include$ sudo apt-get install zlib1g-dev=1:1.2.11.dfsg-0ubuntu2
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
zlib1g-dev : 依赖: zlib1g (= 1:1.2.11.dfsg-0ubuntu2) 但是 1:1.2.11.dfsg-1ubuntu3 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
colourso@colourso-virtual-machine:/usr/include$ sudo apt-get install zlib1g=1:1.2.11.dfsg-0ubuntu2
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包将被【降级】:
zlib1g
升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 47 个软件包未被升级。
需要下载 56.5 kB 的归档。
解压缩后会消耗 7,168 B 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/main amd64 zlib1g amd64 1:1.2.11.dfsg-0ubuntu2 [56.5 kB]
已下载 56.5 kB,耗时 0秒 (233 kB/s)
dpkg: 警告: 即将把 zlib1g:amd64 从 1:1.2.11.dfsg-1ubuntu3 降级到 1:1.2.11.dfsg-0ubuntu2
(正在读取数据库 ... 系统当前共安装有 153862 个文件和目录。)
准备解压 .../zlib1g_1%3a1.2.11.dfsg-0ubuntu2_amd64.deb ...
正在解压 zlib1g:amd64 (1:1.2.11.dfsg-0ubuntu2) 并覆盖 (1:1.2.11.dfsg-1ubuntu3) ...
正在设置 zlib1g:amd64 (1:1.2.11.dfsg-0ubuntu2) ...
正在处理用于 libc-bin (2.30-0ubuntu2) 的触发器 ...
解决之后再次重新安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
colourso@colourso-virtual-machine:/usr/include$ sudo apt-get install libmysqlclient-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
libmysqlclient20 libssl-dev zlib1g-dev
建议安装:
libssl-doc
下列【新】软件包将被安装:
libmysqlclient-dev libmysqlclient20 libssl-dev zlib1g-dev
升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 47 个软件包未被升级。
需要下载 3,418 kB 的归档。
解压缩后会消耗 18.3 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates/main amd64 libmysqlclient20 amd64 5.7.33-0ubuntu0.18.04.1 [687 kB]
获取:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates/main amd64 libssl-dev amd64 1.1.1-1ubuntu2.1~18.04.9 [1,566 kB]
获取:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/main amd64 zlib1g-dev amd64 1:1.2.11.dfsg-0ubuntu2 [176 kB]
获取:4 https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic-updates/main amd64 libmysqlclient-dev amd64 5.7.33-0ubuntu0.18.04.1 [989 kB]
已下载 3,418 kB,耗时 3秒 (1,142 kB/s)
正在选中未选择的软件包 libmysqlclient20:amd64。
(正在读取数据库 ... 系统当前共安装有 153862 个文件和目录。)
准备解压 .../libmysqlclient20_5.7.33-0ubuntu0.18.04.1_amd64.deb ...
正在解压 libmysqlclient20:amd64 (5.7.33-0ubuntu0.18.04.1) ...
正在选中未选择的软件包 libssl-dev:amd64。
准备解压 .../libssl-dev_1.1.1-1ubuntu2.1~18.04.9_amd64.deb ...
正在解压 libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.9) ...
正在选中未选择的软件包 zlib1g-dev:amd64。
准备解压 .../zlib1g-dev_1%3a1.2.11.dfsg-0ubuntu2_amd64.deb ...
正在解压 zlib1g-dev:amd64 (1:1.2.11.dfsg-0ubuntu2) ...
正在选中未选择的软件包 libmysqlclient-dev。
准备解压 .../libmysqlclient-dev_5.7.33-0ubuntu0.18.04.1_amd64.deb ...
正在解压 libmysqlclient-dev (5.7.33-0ubuntu0.18.04.1) ...
正在设置 libmysqlclient20:amd64 (5.7.33-0ubuntu0.18.04.1) ...
正在设置 libssl-dev:amd64 (1.1.1-1ubuntu2.1~18.04.9) ...
正在设置 zlib1g-dev:amd64 (1:1.2.11.dfsg-0ubuntu2) ...
正在设置 libmysqlclient-dev (5.7.33-0ubuntu0.18.04.1) ...
正在处理用于 man-db (2.8.7-3) 的触发器 ...
正在处理用于 libc-bin (2.30-0ubuntu2) 的触发器 ...
colourso@colourso-virtual-machine:/usr/include$
查看用户名、密码
一般这些内容都存放在了mysql这个数据库中的user这张表中。
要注意的是,在mysql5.7版本下,用户的密码字段是authentication_string
。而以前的版本是password
使用命令查看:
1 |
|
修改密码
1 |
|
登录
1 |
|
- 比较好奇的是阿里云的这台服务器,普通用户不能登录,必须使用root用户!
mysql注意事项
库
数据库的名字区分大小写,表名也区分大小写
同时创建的数据库默认字符集是拉丁语,所以创建数据库时可以在指定字符集
1 |
|
表
查看表的结构
1 |
|
程序
头文件
1 |
|
编译:记得带上mysqlclient
1 |
|
基础函数
1 |
|
基础连接
1 |
|
查询
1 |
|
例如
1 |
|
获取结果集
- 调用
mysql_store_result()
将整个结果集全部取出来。 - 调用
mysql_use_result()
初始化获取操作,但暂时不取回任何记录。
视结果集的条目数选择获取结果集的函数。
两种方法均通过mysql_fetch_row()
来访问每一条数据。
1 |
|
解析结果集
通过游标一行一行fetch结果集中的数据,根据游标使用的一般特性,应使用循环结构,到达结尾或者出错,返回NULL。
1 |
|
例如
1 |
|
获取列数
1 |
|
获取表头
1 |
|
实例
1 |
|
获取当前字符集与设置字符集
1 |
|
实例 简单的模拟mysql客户端
1 |
|
- 没有对分号进行处理,所以不要加分号。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!