目录
MySQL 安装
首先update一下
$ sudo apt-get update
查看可以安装的版本
$ sudo apt-get install mysql-server-5.
直接安装5.7的命令
$ sudo apt-get install mysql-server-5.7
进入下面的安装界面后,先输入root密码,不要直接按回车。

然后再次输入root密码,就开始正式安装了。

出现下面类似的界面,就表示安装完成了。

输入命令mysql -u root -p,再输入刚刚的密码,出现以下界面就表示安装成功了。 
显示当前存在的数据库 show databases;

使用哪个数据库 use mysql;

查看有哪些表 show tables;


MySQL 配置
输入以下命令,打开配置文件
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
把bind-address改为0.0.0.0

改完后,需要重启mysql生效重启命令:sudo /etc/init.d/mysql restart
由于root用户只允许本地登陆,我们需要创建一个用户来远程登陆
创建用户命令:create user 'kaka'@'%' identified by '123456';
创建成功后,打开MySQLWorkbench,如下图配置相应的信息。

赋予用户来远程权限,先切成root用户
grant all privileges on *.* to 'kaka'@'%';


配置完成后,点击 Test Connection,出现以下对话框就表明成功了,可以进行数据库的相关操作了。


mysql服务管理命令
#启动 $ sudo service mysql start
#停止 $ sudo service mysql stop
#服务状态 $ sudo service mysql status
彻底删除mysql5.7
下面命令依次执行即可
$ sudo rm /var/lib/mysql/ -R 删除数据库目录
$ sudo rm /etc/mysql/ -R 删除启动脚本、配置文件等
$ sudo apt-get autoremove mysql* --purge 卸载mysql所有文件
$ sudo apt-get remove apparmor 这个apparmor是在装mysql-server时装上的,和安全有关
$ dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 清理残余mysql文件
创建 MySQL 数据表需要以下信息:
- 表名
- 表字段名
- 定义每个表字段


需要在客户端安装mysql开发工具
sudo apt-get install libmysqlclient-dev

- //gcc -o mysql mysql1.c -I /usr/include/mysql/ -lmysqlclient
-
- #include <stdio.h>
- #include <string.h>
- #include <mysql.h>
-
- #define KAKA_DB_SERVER_IP "192.168.240.129"
- #define KAKA_DB_SERVER_PORT 3306
-
- #define KAKA_DB_USERNAME "kaka"
- #define KAKA_DB_PASSWORD "123456"
-
- #define KAKA_DB_DEFAULTDB "KAKA_DB"
-
-
- #define SQL_INSERT_TBL_USER "INSERT TBL_USER(U_NAME, U_GENGDER) VALUES('wzh', 'man');"
- #define SQL_SELECT_TBL_USER "SELECT * FROM TBL_USER;"
-
-
- // C U R D -->
- //
-
- int kaka_mysql_select(MYSQL *handle) { //
-
- //增删改查
-
- int main() {
-
- MYSQL mysql;
-
- //初始化数据库的连接
- if (NULL == mysql_init(&mysql)) {
- printf("mysql_init : %s\n", mysql_error(&mysql));//统一的错误值
- return -1;
- }
-
- //与mysql服务器建立连接
- if (!mysql_real_connect(&mysql, KAKA_DB_SERVER_IP, KAKA_DB_USERNAME, KAKA_DB_PASSWORD,
- KAKA_DB_DEFAULTDB, KAKA_DB_SERVER_PORT, NULL, 0)) {
-
- printf("mysql_real_connect : %s\n", mysql_error(&mysql));
- goto Exit;
- }
-
- #if 1
- // mysql --> insert
- printf("case : mysql --> insert \n");
- //通过管道发送sql语句给sql服务器
- if (mysql_real_query(&mysql, SQL_INSERT_TBL_USER, strlen(SQL_INSERT_TBL_USER))) {
- printf("mysql_real_query : %s\n", mysql_error(&mysql));
- goto Exit;
- }
- #endif
-
- Exit:
- mysql_close(&mysql);
-
- return 0;
-
- }


- //gcc -o mysql mysql1.c -I /usr/include/mysql/ -lmysqlclient
-
- #include <stdio.h>
- #include <string.h>
- #include <mysql.h>
-
- #define KAKA_DB_SERVER_IP "192.168.240.129"
- #define KAKA_DB_SERVER_PORT 3306
-
- #define KAKA_DB_USERNAME "kaka"
- #define KAKA_DB_PASSWORD "123456"
-
- #define KAKA_DB_DEFAULTDB "KAKA_DB"
-
-
- #define SQL_INSERT_TBL_USER "INSERT TBL_USER(U_NAME, U_GENGDER) VALUES('wzh', 'man');"
- #define SQL_SELECT_TBL_USER "SELECT * FROM TBL_USER;"
-
-
- // C U R D -->
- //
-
- int kaka_mysql_select(MYSQL *handle)
- {
- // mysql_real_query --> sql
- if (mysql_real_query(handle, SQL_SELECT_TBL_USER, strlen(SQL_SELECT_TBL_USER))) {
- printf("mysql_real_query : %s\n", mysql_error(handle));
- return -1;
- }
-
- // store --> 将管道数据读出
- MYSQL_RES *res = mysql_store_result(handle);
- if (res == NULL) {
- printf("mysql_store_result : %s\n", mysql_error(handle));
- return -2;
- }
-
- // rows 行 / fields 列
- int rows = mysql_num_rows(res); //行数
- printf("rows: %d\n", rows);
-
- int fields = mysql_num_fields(res); //列数
- printf("fields: %d\n", fields);
-
- // fetch
- MYSQL_ROW row; //行的集合
- while ((row = mysql_fetch_row(res))) { //获取每一行的集合
-
- int i = 0;
- for (i = 0;i < fields;i ++) {
- printf("%s\t", row[i]);
- }
- printf("\n");
-
- }
-
- mysql_free_result(res);
-
- }
-
- //增删改查
- int main() {
-
- MYSQL mysql;
-
- //初始化数据库的连接
- if (NULL == mysql_init(&mysql)) {
- printf("mysql_init : %s\n", mysql_error(&mysql));//统一的错误值
- return -1;
- }
-
- //与mysql服务器建立连接
- if (!mysql_real_connect(&mysql, KAKA_DB_SERVER_IP, KAKA_DB_USERNAME, KAKA_DB_PASSWORD,
- KAKA_DB_DEFAULTDB, KAKA_DB_SERVER_PORT, NULL, 0)) {
-
- printf("mysql_real_connect : %s\n", mysql_error(&mysql));
- goto Exit;
- }
-
- #if 1
- // mysql --> insert
- printf("case : mysql --> insert \n");
- //通过管道发送sql语句给sql服务器
- if (mysql_real_query(&mysql, SQL_INSERT_TBL_USER, strlen(SQL_INSERT_TBL_USER))) {
- printf("mysql_real_query : %s\n", mysql_error(&mysql));
- goto Exit;
- }
- #endif
-
- kaka_mysql_select(&mysql);
-
- Exit:
- mysql_close(&mysql);
-
- return 0;
-
- }

DELETE FROM TBL_USER WHERE U_NAME='kaka';删除数据
同名数据不知删除哪一条

设置成安全模式,主键删除,会全部删除

定义存储过程,调用。像函数一样。不能重复定义

- //gcc -o mysql mysql1.c -I /usr/include/mysql/ -lmysqlclient
-
- #include <stdio.h>
- #include <string.h>
- #include <mysql.h>
-
- #define KAKA_DB_SERVER_IP "192.168.240.129"
- #define KAKA_DB_SERVER_PORT 3306
-
- #define KAKA_DB_USERNAME "kaka"
- #define KAKA_DB_PASSWORD "123456"
-
- #define KAKA_DB_DEFAULTDB "KAKA_DB"
-
-
- #define SQL_INSERT_TBL_USER "INSERT TBL_USER(U_NAME, U_GENGDER) VALUES('wzh', 'man');"
- #define SQL_SELECT_TBL_USER "SELECT * FROM TBL_USER;"
-
- #define SQL_DELETE_TBL_USER "CALL PROC_DELETE_USER('wzh')" //调用存储过程
-
- // C U R D -->
- //
-
- int kaka_mysql_select(MYSQL *handle)
- {
- // mysql_real_query --> sql
- if (mysql_real_query(handle, SQL_SELECT_TBL_USER, strlen(SQL_SELECT_TBL_USER))) {
- printf("mysql_real_query : %s\n", mysql_error(handle));
- return -1;
- }
-
- // store --> 将管道数据读出
- MYSQL_RES *res = mysql_store_result(handle);
- if (res == NULL) {
- printf("mysql_store_result : %s\n", mysql_error(handle));
- return -2;
- }
-
- // rows 行 / fields 列
- int rows = mysql_num_rows(res); //行数
- printf("rows: %d\n", rows);
-
- int fields = mysql_num_fields(res); //列数
- printf("fields: %d\n", fields);
-
- // fetch
- MYSQL_ROW row; //行的集合
- while ((row = mysql_fetch_row(res))) { //获取每一行的集合
-
- int i = 0;
- for (i = 0;i < fields;i ++) {
- printf("%s\t", row[i]);
- }
- printf("\n");
-
- }
-
- mysql_free_result(res);
-
- }
-
-
-
-
- //增删改查
- int main() {
-
- MYSQL mysql;
-
- //初始化数据库的连接
- if (NULL == mysql_init(&mysql)) {
- printf("mysql_init : %s\n", mysql_error(&mysql));//统一的错误值
- return -1;
- }
-
- //与mysql服务器建立连接
- if (!mysql_real_connect(&mysql, KAKA_DB_SERVER_IP, KAKA_DB_USERNAME, KAKA_DB_PASSWORD,
- KAKA_DB_DEFAULTDB, KAKA_DB_SERVER_PORT, NULL, 0)) {
-
- printf("mysql_real_connect : %s\n", mysql_error(&mysql));
- goto Exit;
- }
-
- #if 1
- // mysql --> insert
- printf("case : mysql --> insert \n");
- //通过管道发送sql语句给sql服务器
- if (mysql_real_query(&mysql, SQL_INSERT_TBL_USER, strlen(SQL_INSERT_TBL_USER))) {
- printf("mysql_real_query : %s\n", mysql_error(&mysql));
- goto Exit;
- }
- #endif
-
- kaka_mysql_select(&mysql);
-
-
- #if 1
- printf("case : mysql --> delete \n");
-
- if (mysql_real_query(&mysql, SQL_DELETE_TBL_USER, strlen(SQL_DELETE_TBL_USER))) {
- printf("mysql_real_query : %s\n", mysql_error(&mysql));
- goto Exit;
- }
- #endif
-
- kaka_mysql_select(&mysql);
-
- Exit:
- mysql_close(&mysql);
-
- return 0;
-
- }

待更新。。。