MySQL数据库编程技术是Linux c++程序员必备技能。本文将在虚拟机的ubuntu1404环境上搭建MySQL的开发环境,内容涉及:
- MySQL服务端和客户端安装
- MySQL编程的简单测试
参考文章:
https://my.oschina.net/u/3818901/blog/1785667
https://blog.csdn.net/qq_25730711/article/details/53503959
https://www.cnblogs.com/wunaozai/p/3618383.html
1. MySQL服务端和客户端安装
$ sudo apt-get install mysql-server //下载安装MySQL服务端
弹窗如下,提示为root用户设置登录密码。(默认密码为空)
这里设置密码为一个空格:
$ sudo apt-get install mysql-client //下载安装客户端
$ sudo apt-get install libmysqlclient-dev //下载安装MySQL的c/c++开发接口
运行如下命令:
$ sudo netstat -tap | grep mysql
如下图表示安装成功且MySQL服务端处于启动状态。
安装mysql-server过程中会弹出输入密码的界面,是root用户登录MySQL服务端的密码。运行命令:
$ sudo mysql -uroot -p //以root用户登录MySQL
此时需要键入刚才设置的密码即可登录成功:
MySQL客户端/服务端的工作配置文件都在/etc/mysql/my.cnf文件中,客户端:
[client]
port = 3306 #默认连接的端口号
socket = /var/run/mysqld/mysqld.sock
服务端:
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306 #默认监听的端口号
basedir = /usr
datadir = /var/lib/mysql #数据库文件的存放路径
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
bind-address = 127.0.0.1 #绑定的IP地址
...
“mysqld”表示mysql是一个守护进程(Linux中的不成文规定,’d’结尾的都为守护进程)
若要卸载MySQL,执行命令:
$ sudo rm /var/lib/mysql/ -R
$ sudo rm /etc/mysql/ -R
$ sudo apt-get autoremove mysql* --purge
$ sudo apt-get remove apparmor
$ dpkg -l | grep mysql # 若没有返回,说明已完成卸载
2. MySQL编程的简单测试
2.1 建立数据库及表格
MySQL默认存在3种用户信息等数据库:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
执行命令:
mysql> create database db_test;
mysql> use db_test;
mysql> create table tb_test(name varchar(255), num int(10), age int(4));
mysql> show create table tb_test;
mysql> select * from test;
2.2 c语言操作MySQL数据库
#include <stdio.h>
#include <mysql/mysql.h>
#include <stdlib.h>
int main(void)
{
MYSQL conn;
mysql_init(&conn);
if (mysql_real_connect(&conn, "127.0.0.1", "root", " ", "db_test", 3306, NULL, 0))
{
if (mysql_query(&conn, "insert into tb_test values('user', 1, 12)") != 0)
{
printf("mysql_real_query failed: %s\n", mysql_error(&conn));
exit(0);
}
mysql_close(&conn);
exit(0);
}
printf("mysql_real_connect failed: %s\n", mysql_error(&conn));
return 0;
}
编译:
$ gcc 1_mysql_test.c -lmysqlclient
或者
$ gcc 1_mysql_test.c `mysql_config --cflags --libs` //`是反单引号
运行后,再次查看数据库: