鏈接步驟:mysql
第一步:sql
確定要看你的mysql數據庫是否啓動,才能肯定是否可以鏈接,一下有兩種方式數據庫
1.service mysqld status 查看你mysql狀態服務器
2.ps -e |grep mysqld 查看你mysql運行對應的進程tcp
第二步:開啓mysql的遠程訪問權限測試
默認mysql的用戶是沒有遠程訪問的權限的,所以當程序跟數據庫不在同一臺服務器上時,咱們須要開啓mysql的遠程訪問權限。阿里雲
主流的有兩種方法,改表法和受權法。spa
相對而言,改表法比較容易一點,我的也是比較傾向於使用這種方法,所以,這裏只貼出改表法rest
一、登錄mysqlcode
mysql -u root -p
二、修改mysql庫的user表,將host項,從localhost改成%。%這裏表示的是容許任意host訪問,若是隻容許某一個ip訪問,則可改成相應的ip,好比能夠將localhost改成192.168.1.123,這表示只容許局域網的192.168.1.123這個ip遠程訪問mysql。
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
mysql> flush privileges;
第三步:在阿里雲的防火牆創建一個新的端口3306,類型選擇mysql
第四步:開啓這個端口
一、打開防火牆配置文件
vi /etc/sysconfig/iptables
二、增長下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
三、重啓防火牆
保存設置:service iptables save
service iptables restart
編譯的時候注意在後面加上-lmysqlclient
第五步:測試一下
一下是測試demo:
#include<stdio.h> #include<stdlib.h> #include<mysql/mysql.h> #include<string.h> int main(int argv,char *argc[]) { MYSQL mysql; mysql_init(&mysql); printf("test!!\n"); if(!mysql_real_connect(&mysql,"**.**.**.**","root","pwd","mysql",3306,NULL,0)) //這裏是阿里雲的公網網址和MySQL的帳號密碼 { printf("mysql_connect fail!\n"); return 0; }else { printf("connectd MYSQL successs!\n"); } printf("test!!\n"); mysql_close(&mysql); return 0; }