開發環境:mysql
配置mysql容許遠程鏈接的方法默認狀況下,mysql只容許本地登陸,若是要開啓遠程鏈接,則須要修改/etc/mysql/my.conf文件。linux
1、修改/etc/mysql/my.conf
找到bind-address = 127.0.0.1這一行
改成bind-address = 0.0.0.0便可git
2、爲須要遠程登陸的用戶賦予權限
一、新建用戶遠程鏈接mysql數據庫
grant all on *.* to admin@'%' identified by '123456' with grant option; flush privileges;
容許任何ip地址(%表示容許任何ip地址)的電腦用admin賬戶和密碼(123456)來訪問這個mysql server。注意admin帳戶不必定要存在。github
二、支持root用戶容許遠程鏈接mysql數據庫sql
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; flush privileges;
sudo systemctl restart mysqld
數據庫
github源碼地址。ubuntu
查找依賴的頭文件
mysql_config --include
ide
創建.so庫的軟鏈接,供可執行文件調用
sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib/
rest
編譯
gcc -o test_mysql test_mysql.c -I/usr/local/mysql/include -L/usr/local/mysql/lib/ -lmysqlclient
code
liangjf@ubuntu:~/study/mysql$ ./test_mysql 共9個記錄,每一個記錄3字段 id name phone 1 aaa 7774090 2 abc 7774099 3 acb 7794099 4 bcb 8794099 5 bcc 8894099 6 qwe 8494099 7 azq 6544099 8 njhu 8544099 9 ert 1544099
fatal error: mysql/plugin_auth_common.h
查找是有這個問題,可是編譯失敗,證實是編譯時指定的mysql/include路徑錯誤了
liangjf@ubuntu:~/study/mysql$ sudo find / -name plugin_auth_common.h /usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/include/mysql/plugin_auth_common.h /usr/local/mysql-5.6.27-linux-glibc2.5-x86_64/include/mysql/plugin_auth_common.h /usr/include/mysql/mysql/plugin_auth_common.h
一開始我用的是第三個路徑,這個路徑是錯的,後來用了第一個路徑就ok了。
出現一大疊錯誤,看起來就是鏈接mysqlclient庫失敗了。
失敗的緣由確定是指定的路徑有問題,
liangjf@ubuntu:~/study/mysql$ sudo find / -name libmysqlclient.so /usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/lib/libmysqlclient.so /usr/local/mysql-5.6.27-linux-glibc2.5-x86_64/lib/libmysqlclient.so /usr/lib64/mysql/libmysqlclient.so
最初我用的路徑是/usr/lib64/mysql/
,後來選用/usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/lib/
就編譯ok了。
執行可執行文件失敗。
liangjf@ubuntu:~/study/mysql$ ./test_connect ./test_connect: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
編譯時能夠找到動態庫,而執行時木有,是由於個人mysql的lib是單獨安裝,沒有加進去環境變量中。兩種解決辦法:
/usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/lib/
加入環境變量中/usr/local/mysql-5.7.9-linux-glibc2.5-x86_64/lib/libmysqlclient.so.20
拷貝到/usr/lib中。由於這個路徑是可執行文件去自動查找動態庫的路徑。