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 #執行
相關文章
相關標籤/搜索