0. 小建议
- Ubuntu 16.04。由于MySQL对于Ubuntu 18.04不是很适配,会出现终端MySQL没法输入中文等问题。若是用Ubuntu 18.04,会须要多解决不少细节问题。
- 建议将软件源设为中国服务器,好比aliyun(阿里云)或huaweicloud(华为云)。
- 在Linux环境下写代码请尽量用英文。
- 指令块中的各指令请逐条安装,不要同时复制多行指令执行。“#”为注释部分,仅供理解。
- 关机大法好 && STFW。
- 本教程结合了一些博客以及本校的三级项目指导书,但请阅读者在两教程不一样时,选择用本教程的代码,由于其余来源代码老是有笔误,例如isntall、create databases、-lmysqlclient
1. 环境部署
1.1. 基本环境部署
sudo apt update sudo apt upgrade # 升级当前系统内可更新的内容。若升级项目较多,建议升级完成后重启一下。 sudo apt install g++ # 安装g++编译器,用于编译C/C++语言。
1.2. MySQL安装
sudo apt install mysql-server sudo apt install mysql-client sudo apt install libmysqlclient-dev
一路默认,密码设定建议与系统密码相同。php
1.3. 配置MySQL支持中文
sudo mysql -uroot -p #-u是帐户,-p表明将要输入密码。
进入到MySQL终端后,输入show variables like 'character%';
,显示以下:html
Variable_name | Value | +————————–+—————————-+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +————————–+—————————-+mysql
latin1就是不能正常显示的缘由,须要将编码格式更改成utf8格式:sql
- 修改MySQL的配置文件
sudo gedit /etc/mysql/conf.d/mysql.cnf
修改以后的配置文件以下所示:
[mysql] default-character-set=utf8 [mysqld] character-set-server=utf8数据库
service mysql restart #重启一下MySQL
注意:只对改动以后建立的数据库有效。改动以前就建立好的数据库依然没法插入中文。
1.4. 安装phpmyadmin
sudo apt-get install phpmyadmin
- 窗口提示选择服务器,注意不要直接回车,而是肯定选中 apache2 回车。
- 设定 phpMyAdmin 的密码,建议将全部密码都设成系统密码。
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin #创建/var/www/html 下的软链接
sudo /etc/init.d/apache2 restart #重启apache2
- 打开浏览器,地址栏输入
localhost/phpmyadmin
,帐号输入root,密码输入MySQL密码便可登陆。也能够帐号phpmyadmin,密码按刚才安装phpmyadmin设的密码,只是本帐户权限比root要低一些。
2. 练手
2.1. MySQL
sudo mysql -uroot -p #-u是帐户,-p表明将要输入密码。
show databases; #显示当前全部数据库 use mysql; show tables; select host,user,password_last_changed from user; create database aaa; use aaa; create table student (id int(3) auto_increment not null primary key, xm char(8),xb char(4),csny date); insert into student values('1','Bai','F','1972-05-20'); insert into student values('2','白','女','1972-05-20');
2.2. C++链接MySQL
sudo gedit Test.cpp #用gedit编辑器建立并打开一个.cpp文件
填入如下代码,注意将password[]和database[]改成本身的密码和数据库。apache
#include <mysql/mysql.h> #include <stdio.h> #include <stdlib.h> int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char server[] = "localhost"; char user[] = "root"; char password[] = "1234"; char database[] = "aaa"; conn = mysql_init(NULL); if (!mysql_real_connect(conn, server,user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } mysql_query(conn, "SET NAMES UTF8"); //以上,为链接数据库并声明SQL指令的编码类型为UTF8。 if (mysql_query(conn, "show tables")) { fprintf(stderr, "%s\n", mysql_error(conn)); exit(1); } res = mysql_use_result(conn); printf("MySQL Tables in mysql database:\n"); while ((row = mysql_fetch_row(res)) != NULL) { printf("%s \n", row[0]); } mysql_query(conn, "INSERT INTO `student` VALUES ('5', '李四', '男', null);"); mysql_free_result(res); mysql_close(conn); printf("finish! \n"); return 0; }
g++ -W -Wall Test.cpp -o Test.out -lmysqlclient #编译并输出可执行文件Test.o,-l是用到mysqlclient库。 ./Test.out #执行