freebsd 安裝 mysql

1. freebsd 這個系統說實話 真的沒有ubuntu 方便 ,要安裝個軟件, apt-get install 下就可以了,而在freebsd 下面只能在ports 下去裝,但通常情況下總是沒資源,坑啊
所以只能自己 下包,自己裝了 


1. 首先下 mysql-5.1.70.tar.gz

tar -zxvf mysql-5.1.70.tar.gz

cd mysql-5.1.70

./configure --prefix=/usr/local/mysql

make WITH_CHARSET=utf8 WITH_PROC_SCOPE_PTH=yes BUILD_OPTIMIZED=yes BUILD_STATIC=yes SKIP_DNS_CHECK=yes WITHOUT_INNODB=yes install clean

pw groupadd mysql

pw useradd mysql -g mysql 

/usr/local/mysql/bin/mysql_install_db --user=mysql

cp /usr/local/mysql/share/mysql/my-large.cnf /etc/my.cnf

cd /usr/local/mysql

chown -R root .

chown -R mysql var

chown -R mysql var/mysql/. 

chgrp -R mysql .    # .號千萬不要忘了寫

/usr/local/mysql/bin/mysql_install_db --user=mysql

./mysqld_safe --user=mysql &

// 裝好之後 初始密碼沒有 
重設密碼 
./mysqladmin -uroot -p password 123456
會提示 enter password: 直接按enter 鍵即可(這裏要輸的原來密碼,原來的密碼沒有)

啓動mysql 
root@gyl:/usr/local/mysql/bin # ./mysqld_safe --user=mysql &

關閉mysql 
root@gyl:/usr/local/mysql/bin # ./mysqladmin -uroot -p shutdown

進入mysql 
root@gyl:/usr/local/mysql/bin # ./mysql -u root -p

用navicate 去連的時候 要開啓權限
root@gyl:/usr/local/mysql/bin # ./mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> EXIT

寫段代碼測試下

#include <iostream>
#include <string.h>
#include "mysql.h" //安裝的mysql的頭文件所在的位置

using namespace std;

string host = "192.168.67.130";
string user = "root";
string pwd = "123456";
string dbname = "test";
string sql = "select * from user";
unsigned int port = 3306; // 

int status;

int main()
{

	MYSQL *mysql;
	mysql = mysql_init(0);
	MYSQL_RES *result;
	MYSQL_ROW row;

	if (mysql_real_connect(mysql, host.c_str(), user.c_str(), pwd.c_str(), dbname.c_str(), port, NULL, CLIENT_FOUND_ROWS) == NULL){

		cout << "connect failure!" << endl;

		return EXIT_FAILURE;

	}
	else{

		cout << "connect success!" << endl;

	}

	mysql_set_character_set(mysql, "gbk");

	status = mysql_query(mysql, sql.c_str());

	if (status != 0){

		cout << "query failure!" << endl;

	}

	cout << "the status is :" << status << endl;

	result = mysql_store_result(mysql);

	while (row = mysql_fetch_row(result)){

		cout << row[1] << "|" << row[2] << endl;

	}

	mysql_free_result(result);

	mysql_close(mysql);

}

g++ -o testmysql testmysql.cpp -lmysqlclient -I /usr/local/mysql/include/mysql -L /usr/local/mysql/lib/mysql/

編譯可以成功,但是執行 ./testmysql 時
提示如下錯誤
Shared object "libmysqlclient.so.16" not found, required by "testmysql"

應該是 裏面的代碼的鏈接路徑不對,但是又沒辦法改代碼,只能改路徑

root@gyl:/usr/local/mysql/lib/mysql # ln -s libmysqlclient.so.16 /usr/lib/libmysqlclient.so
root@gyl:/usr/local/mysql/lib/mysql # cp libmysqlclient.so.16 /usr/lib

這樣就可以了,大告功成,記下,免得以後又忘記了




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章