移動IM開發學習 3

2021-09-30 13:00:17 字數 2449 閱讀 5256

(在ubuntu系統上)

xmpp環境搭建之mysql安裝:

一.安裝mysql(資料庫也是伺服器,連線需要」位址+埠號」)

開啟終端:

二.遠端訪問mysql資料庫:

mysql遠端訪問的命令:

$ mysql -h192

.168

.1.11

-uroot

-p123456

出現這樣的錯誤:error 2003 (hy000): can』t connect to mysql server on 『192.168.1.11』 (111)。無法連線遠端的mysql資料庫

mysql遠端連線資料庫,有兩種方式:

mysql.sock和tcp/ip,前者比後者連線訪問速度更快,但僅限於同一台本機。上述錯誤,是沒有遠端訪問許可權導致的

解決方法:

1.在目標伺服器上(192.168.1.11),修改mysql的my.cnf檔案:

sudo vi /etc/mysql/my.cnf
2.注釋掉bind-address,遮蔽其只對本地監聽

#bind-address = 127.0.0.1
3.啟動mysql服務,使其修改的配置生效

sudo restart mysql
配置完了伺服器的資料訪問許可權,此時還是不能遠端訪問mysql資料庫,這是因為現在還沒有對伺服器上的資料庫或表賦予訪問許可權

4.在伺服器上,登入mysql資料庫

mysql -u root -p123456
對資料庫top800賦予許可權

grant

allprivileges

on top800.* to [email protected]

.1.22 identified by

'123456';

flush privileges;

6.現在可以遠端訪問伺服器上的mysql

mysql -h192

.168

.1.11

-uroot

-p123456

預設,只能訪問information_schema和top800,其中top800是我們在步驟5賦予許可權的資料庫

當然,你可以這樣設定:

grant

allprivileges

on *.* to root@"%" identified by

"password"

with

grant

option;

flush privileges;

引數解釋:

三.亂碼修復

sudo gedit /etc/mysql/my.cnf
開啟之後,再加入:

[client]

default-character-set=utf8

注意:上面的中間default-character-set=utf8**是加入,不是修改,下面同理!

同樣還有乙個地方!

[mysqld]

default-character-set=utf8

init_connect='set names utf8'

同樣這兩行**是加入!

這個是儲存檔案!

執行:停止資料庫服務:sudo /etc/init.d/mysql stop

重新啟動:sudo /etc/init.d/mysql start

進入資料庫:mysql -uroot -p(你的密碼)

檢視編碼:show variables like '%chara%';

create

table

user(

-> id int auto_increment,

-> name varchar(30),

-> primary

key(id)

-> )default charset=utf8;

注意建表時,default charset=utf8這個設定不能少。

ps:今天遇到很奇怪的問題,遠端連線mysql伺服器時,在本地客戶端利用命令列方式插入中文出現亂碼(我伺服器的編碼是utf8),把本地客戶端的編碼設定成gbk即可。

注意:在編輯my.cnf後,輸入:wq會提示該檔案是readonly,解決辦法是::w !sudo tee %,然後:q!強制退出

移動IM開發學習 1

一.通訊方式 im通訊方式有兩種選擇 裝置直連 p2p 和通過伺服器中轉。1.p2p p2p多見於區域網內聊天工具,典型的應用有 飛鴿傳書,天網maze等。這類軟體在啟動後一般做兩件事情 進行udp廣播 傳送自己資訊和接受同區域網內其他端資訊 開啟tcp監聽 等待其他端進行連線 2.伺服器中轉 幾乎...

移動IM開發學習 5

遵守xmpp的客戶端 mac中的 資訊 也是遵守xmpp協議的 一.那麼如何在mac下的資訊中新增帳戶呢 1.首先在openfire的管理控制台中新增使用者 2.在mac資訊中新增剛才新增的賬戶 1 資訊 新增帳號 4 配置成功 二.如何為自己的電腦配置網域名稱 ubuntu 修改 etc host...

移動 IM 開發之心跳

什麼是心跳?在使用 tcp 長連線的im 服務設計中,往往都會涉及到心跳。心跳一般是指某端 絕大多數情況下是客戶端 每隔一定時間向對端傳送自定義指令,以判斷雙方是否存活,因其按照一定間隔傳送,類似於心跳,故被稱為心跳指令。為什麼要在應用層做心跳 那麼問題就隨之而來了 為什麼需要在應用層做心跳,難道 ...