我們在Windows系統(tǒng)中安裝過MySQL數(shù)據(jù)庫,那么如何在Ubuntu系統(tǒng)中安裝呢?下面我給大家分享演示一下。
創(chuàng)新互聯(lián)科技有限公司專業(yè)互聯(lián)網(wǎng)基礎服務商,為您提供成都溫江機房,高防主機,成都IDC機房托管,成都主機托管等互聯(lián)網(wǎng)服務。
工具/材料
Ubuntu
01
首先我們需要登錄MySQL的官方平臺下載Ubuntu的安裝包,如下圖所示,大家選擇紅框中的安裝包即可
02
接下來打開Ubuntu中的命令行,執(zhí)行apt install numactl安裝MySQL的依賴庫numactl,如下圖所示
03
然后執(zhí)行apt install命令繼續(xù)安裝依賴包libaio-dev,如下圖所示
04
接下來我們運用tar命令解壓剛才下載的mysql壓縮包,如下圖所示
05
接著我們需要通過groupadd命令給Ubuntu系統(tǒng)添加一個mysql的用戶組,如下圖所示
06
然后添加一個mysql用戶到mysql用戶組中,如下圖所示,這里主要用了useradd命令
07
接下來我們需要將解壓后的壓縮包移動到/usr/local/mysql文件夾下面,如下圖所示
08
然后給移動后的文件夾添加目錄權限到mysql用戶組,如下圖所示
09
接下來我們就可以對mysql數(shù)據(jù)庫執(zhí)行初始化命令了,如下圖所示
10
最后我們在命令行開啟MySQL服務即可完成數(shù)據(jù)庫的安裝了,如下圖所示
從官網(wǎng)下載安裝包MySQL :: Download MySQL Community Server
解壓到/usr/local目錄下,重命名為mysql
然后在終端輸入以下命令:
shell groupadd mysql
shell useradd -r -g mysql mysql
shell cd /usr/local
shell cd mysql
shell chown -R mysql . (別忘了最后有一個點,下同)
shell chgrp -R mysql .
shell scripts/mysql_install_db --user=mysql
這句執(zhí)行后如果報錯:
scripts/mysql_install_db: 244: ./bin/my_print_defaults: not found
Neither host 'ubuntu' nor 'localhost' could be looked up with
./bin/resolveip
Please configure the 'hostname' command to return a correct
hostname.
If you want to solve this at a later stage, restart this script
with the --force option
在終端輸入uname -a命令查看系統(tǒng)版本,如果結果為x86_64則說明系統(tǒng)是64位的,是不是下載的安裝包不對了?到官網(wǎng)下載64位版本的,把剛解壓到mysql目錄刪掉,重新執(zhí)行上面這一條語句
如果又報錯:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
這說明少個東西,執(zhí)行下面這條命令:
sudo apt-get install libaio-dev
安裝完成后再執(zhí)行scripts/mysql_install_db --user=mysql這條語句
繼續(xù)執(zhí)行后續(xù)命令:
shell chown -R root .
shell chown -R mysql data
好了,下面啟動:
sudo ./support-files/mysql.server start
# /usr/local/mysql/bin/mysqld_safe --user=mysql
cd /usr/local/mysql/bin //進入 bin目錄
#mysql //運行mysq命令
如果沒有沒有啟動 或出現(xiàn) Can't connect to local MySQL server through socket '/tmp/mysql.sock'
解決方法: #cd /usr/local/mysql/support-files //進入該目錄
#./mysql.server start //啟動即可 既可在生成/tmp/mysql.sock
如果/tmp/mysql.sock 無該文件存在,且mysql是處于 開啟的狀態(tài)?
解決方法: #netstat -an | grep 3306 //查看 3306端口
#ps -ef | grep mysql // 查找 mysql 進程
# kill -9 進程號 //強制刪除mysql的進程號
#./mysql.server start // 啟動即可 既可在生成/tmp/mysql.sock
如果在任意路徑下如數(shù)mysql命令得到的無該命令咋辦呢?
解決方法:修改 /etc/profile 文件 在文件中加入
PATH=$PATH:/usr/local/mysql/bin/
export PATH (保存即可退出執(zhí)行 source /etc/profile)
以上操作完全可以 在任意目錄執(zhí)行 # mysql 命令
如果想執(zhí)行 service mysql start or restart stop 命令咋辦的? 在不能老#./mysql.server start
解決方法:將 mysql.server 復制一份到 /etc/rc.d/init.d 下并改名 mysql 或 建個連接文件
假設當前目錄為 /etc/rc.d/init.d
如: #cp /usr/local/mysql/support-files/mysql.server mysql (復制)
或 : #ln -s /usr/local/mysql/support-files/mysql.server mysql (建立連接文件)
完成以上操作即可 執(zhí)行 service mysql start (or restart stop)
用如下命令修改MYSQL密碼
# /usr/local/mysql/bin/mysqladmin -u root password yourpassword //默認安裝密碼為空,為了安全你必須馬上修改
# chmod 700 /etc/init.d/mysql
# chkconfig --add mysqld
# chkconfig --level 345 mysql on //copy編譯目錄的一個腳本設置使mysql每次啟動都能自動運行
# service mysql start
# netstat -atln
//啟動mysql服務
//查看3306端口是否打開。要注意在防火墻中開放該端口。
可以用telnet localhost 3306來測試一下,如果有反應,那就表明安裝成功了
Ubuntu上安裝MySQL非常簡單只需要幾條命令就可以完成。
1. sudo apt-get install mysql-server
2. apt-get isntall mysql-client
3. sudo apt-get install libmysqlclient-dev
安裝過程中會提示設置密碼什么的,注意設置了不要忘了,安裝完成之后可以使用如下命令來檢查是否安裝成功:
sudo netstat -tap | grep mysql
通過上述命令檢查之后,如果看到有mysql 的socket處于 listen 狀態(tài)則表示安裝成功。
登陸mysql數(shù)據(jù)庫可以通過如下命令:
mysql -u root -p
-u 表示選擇登陸的用戶名, -p 表示登陸的用戶密碼,上面命令輸入之后會提示輸入密碼,此時輸入密碼就可以登錄到mysql。
然后通過 show databases; 就可以查看當前的數(shù)據(jù)庫。
我們選擇 mysql數(shù)據(jù)庫就行下一步操作,使用use mysql 命令,顯示當前數(shù)據(jù)庫的表單:show tables
寫一個簡單的程序來訪問該數(shù)據(jù)庫,實現(xiàn) show tables 功能:
#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[] = "mima";
char database[] = "mysql";
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);
}
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_free_result(res);
mysql_close(conn);
printf("finish! \n");
return 0;
}
編譯代碼的時候需要鏈接mysql的庫,可以通過如下方式編譯:
g++ -Wall mysql_test.cpp -o mysql_test -lmsqlclient
然后運行編譯好的代碼:
可見結果和使用SQL語句 show tables 是一樣的。
make it simple, make it happen