鏈接阿里雲服務器數據庫

鏈接步驟: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;
    }
相關文章
相關標籤/搜索