Ubuntu:MySQL与phpmyadmin安装、配置并使用。

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

  1. 修改MySQL的配置文件
    sudo gedit /etc/mysql/conf.d/mysql.cnf
    修改以后的配置文件以下所示:

[mysql] default-character-set=utf8 [mysqld] character-set-server=utf8数据库

  1. service mysql restart #重启一下MySQL 注意:只对改动以后建立的数据库有效。改动以前就建立好的数据库依然没法插入中文。

1.4. 安装phpmyadmin

  1. sudo apt-get install phpmyadmin
  2. 窗口提示选择服务器,注意不要直接回车,而是肯定选中 apache2 回车。
  3. 设定 phpMyAdmin 的密码,建议将全部密码都设成系统密码。
  4. sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin #创建/var/www/html 下的软链接
  5. sudo /etc/init.d/apache2 restart #重启apache2
  6. 打开浏览器,地址栏输入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 #执行
相关文章
相关标签/搜索