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

一路默認,密碼設定建議與系統密碼相同。

1.3. 配置MySQL支持中文

sudo mysql -uroot -p #-u是賬戶,-p代表將要輸入密碼。

進入到MySQL終端后,輸入show variables like 'character%';,顯示如下:

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/ |
+————————–+—————————-+

latin1就是不能正常顯示的原因,需要將編碼格式更改為utf8格式:

  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[]改為自己的密碼和數據庫。

#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 #執行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM