MySQL服務器的搭建及編程
mysql安裝包下載: https://dev.mysql.com/downloads/mysql/
解壓下載的安裝包
tar -zxvf mysql-5.6.46-linux-glibc2.12-i686.tar.gz
切換為root用戶
sudo su
重命名
mv mysql-5.6.46-linux-glibc2.12-i686/ mysql
創建mysql用戶組及用戶
groupadd mysql
useradd -r -g mysql mysql
將解壓的mysql文件夾移動到/usr/local目錄下
mv mysql/ /usr/local/
進入/usr/local/文件夾並修改mysql文件夾用戶組及用戶為mysql
cd /usr/local/
chown -R mysql:mysql mysql
這一步主要是為了后面安裝依賴包, 如果都有或系統可以聯網可以忽略
修改/etc/hosts文件夾將IP和主機名添加進去
vi /etc/hosts
# 添加如下內容
192.168.1.110(備注:改為本機IP) master
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
安裝依賴包
apt-get update
apt-get install libnuma1
apt-get install libaio1
對於Ubuntu18.04而言, 只缺少libaio1包
下載鏈接: https://pkgs.org/search/?q=libaio1
安裝.deb包:
sudo dpkg -i <package.deb>
進入mysql/文件夾, 進行安裝
./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --explicit_defaults_for_timestamp
修改data文件及用戶組及用戶為mysql
chown -R mysql:mysql data
進入mysql/support-files文件夾執行命令, 啟動mysql
./mysql.server start
進入mysql/bin修改mysql密碼,之前安裝時已經提示如何修改(注意new-password是設定的新密碼),拷貝數據庫頭文件,加入數據庫庫函數到系統中
./mysqladmin -u root password 'new-password'
# 此處是為了C語言操作mysql
cd ..
cp -rf include/* /usr/local/include/
echo "/usr/local/mysql/lib" >>/etc/ld.so.conf
ldconfig
進入mysql/bin登錄mysql
./mysql -uroot -p
允許遠程用戶連接(需要先進入mysql)
use mysql;
SELECT User, Password, Host FROM user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
其中"."代表所有資源所有權限, “'root'@%”其中root代表賬戶名,%代表所有的訪問地址,也可以使用一個唯一的地址進行替換,只有一個地址能夠訪問。如果是某個網段的可以使用地址與%結合的方式,如10.0.42.%。IDENTIFIED BY 'root',這個root是指訪問密碼。WITH GRANT OPTION允許級聯授權。
FLUSH PRIVILEGES;
C語言連接mysql, hello.c
#include <stdio.h>
#include <mysql.h>
int main(int argc, const char *argv[])
{
MYSQL mysql;
if (NULL == mysql_init(&mysql)) { //為數據庫分配和初始化MYSQL對象
printf("mysql_init(): %s\n", mysql_error(&mysql));
return -1;
}
//嘗試與運行在主機上的MySQL數據庫引擎建立連接
if (NULL == mysql_real_connect(&mysql,
"localhost",
"root",
"12345", //密碼
"db_users", //數據庫名稱
0,
NULL,
0)) {
printf("mysql_real_connect(): %s\n", mysql_error(&mysql));
return -1;
}
printf("Connected MySQL successful! \n");
mysql_close(&mysql);
return 0;
}
編譯時指定mysql 對應頭文件和庫文件即可
gcc -o hello hello.c -I /usr/include/mysql/ -L /usr/local/mysql/lib -lmysqlclient
注意:到這步為止還沒有加入開機自啟動, 如果重新開機, 需要重新進入mysql/support-files文件夾執行命令, 啟動mysql
設置開機自啟動mysql服務
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
執行此步后同時可以簡化mysql啟動
service mysqld start
進行此步可以直接在終端使用mysql命令
vi ~/.bash_profile
# 加入如下內容:
export PATH=$PATH:/usr/local/mysql/bin
終端執行命令
source ~/.bash_profile