本文目錄一覽:
- 1、怎麼給mysql用戶File權限
- 2、如何從linux中通過mysql數據庫讀取文件中的表情
- 3、如何讀取mysql binlog 解析
- 4、怎麼判斷mysql讀和寫達到了瓶頸
- 5、c語言讀取mysql庫中的數據的程序頭文件怎麼設置
- 6、怎樣讀取mysql數據庫文本(text)字段的值?
怎麼給mysql用戶File權限
查看MySQL用戶權限:
show grants for 你的用戶比如:
show grants for root@’localhost’;Grant 用法GRANT USAGE ON *.* TO ‘discuz’@’localhost’ IDENTIFIED BY PASSWORD ‘*C242DDD213BE9C6F8DA28D49245BF69FC79A86EB’;
GRANT ALL PRIVILEGES ON `discuz`.* TO ‘discuz’@’localhost’;
我先按我的理解解釋一下上面兩句的意思
建立一個只可以在本地登陸的 不能操作的用用戶名 discuz 密碼為 ***** 已經加密了的
然後第二句的意思是 ,給這個discuz用戶操作discuz數據庫的所有權限使用GRANTGRANT命令用來建立新用戶,指定用戶口令並增加用戶權限。其格式如下:
mysql GRANT privileges ON what
– TO user [IDENTIFIED BY password]
– [WITH GRANT OPTION];
正如你看到的源碼天空
,在這個命令中有許多待填的內容。讓我們逐一地對它們進行介紹,並最終給出一些例子以讓你對它們的協同工作有一個了解。
privileges是一個用逗號分隔的你想要賦予的MySQL用戶權限的列表。你可以指定的權限可以分為三種類型:
數據庫/數據表/數據列權限: Alter: 修改已存在的數據表(例如增加/刪除列)和索引。
Create: 建立新的數據庫或數據表。
Delete: 刪除表的記錄。
Drop: 刪除數據表或數據庫。
INDEX: 建立或刪除索引。
Insert: 增加表的記錄。
Select: 顯示/搜索表的記錄。
Update: 修改表中已存在的記錄。
全局管理MySQL用戶權限:
file: 在MySQL服務器上讀寫文件。
PROCESS: 顯示或殺死屬於其它用戶的服務線程。
RELOAD: 重載訪問控制表,刷新日誌等。
SHUTDOWN: 關閉MySQL服務。
特別的權限:
ALL: 允許做任何事(和root一樣)。
如何從linux中通過mysql數據庫讀取文件中的表情
如何從linux中通過mysql數據庫讀取文件中的表情
在linux下安裝mysql數據庫並配置的流程比較繁瑣,需要耐心調試,具體方法和步驟如下:
1.查找以前是否安裝有mysql,使用下面命令:
rpm -qa|grep -i mysql
如果顯示有如下包則說明已安裝mysql
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
2.如果已安裝,則需要刪除已安裝的數據庫,使用以下命令來刪除數據庫
刪除命令:rpm -e –nodeps 包名
( rpm -ev mysql-4.1.12-3.RHEL4.1 )
刪除老版本mysql的開發頭文件和庫
命令:rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
注意:卸載後/var/lib/mysql中的數據及/etc/my.cnf不會刪除,如果確定沒用後就手工刪除
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
3.下載mysql的rpm包
可以通過wget下載具體的地址因為不能用鏈接請大家去官網去找
(1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:MySQL服務器;
(2)MySQL-client-5.6.10-1.rhel5.x86_64.rpm:MySQL客戶端;
(3)MySQL-devel-5.6.10-1.rhel5.x86_64.rpm:Mysql開發依賴包。
如何讀取mysql binlog 解析
mysqlbinlog 是將 binlog 解析成可讀可執行的 SQL 的重要工具。
但解析體積較大的 binlog 時,如何查看 mysqlbinlog 的執行進度就變成了一個問題,mysqlbinlog 並未提供 –progress 這樣的參數。
那要怎麼查看 mysqlbinlog 的解析進度?
實驗
我們在 實驗 08 中介紹了如何生成隨機數據。可以利用其中技巧,生成較大的 binlog,我們忽略這個過程。
從已有的 binlog 開始,bin.000002 大約有 1.1 個 G:
用 mysqlbinlog 解析該 binlog:
大概會執行 4.6 秒左右。大家仔細做實驗時,可以將 binlog 放大一些,讓執行實驗更長一些。
我們在 mysqlbinlog 解析時,查看其文件句柄:
可以看到 mysqlbinlog 用句柄 3 讀取 binlog。(我們暫時忽略句柄 4 指向的臨時文件,其涉及到了行格式的解析過程,我們安排在以後的實驗中慢慢介紹)
獲取了 mysqlbinlog 處理文件句柄 3 的進度,就可以大概估算 mysqlbinlog 的整體進度:
可以看到 mysqlbinlog 此時的進度大概是 600M 左右,整體進度估算為 54%。
結論
我們無法讓 mysqlbinlog 直接輸出進度,於是通過觀察 mysqlbinlog 對 binlog 的讀取進度,估算mysqlbinlog 的整體處理進度。
怎麼判斷mysql讀和寫達到了瓶頸
1. MySQL處在高負載環境下,磁盤IO讀寫過多,肯定會佔用很多資源,必然會CPU佔用過高,所以可以用top命令查看MySQL所在服務器的cpu使用情況,從而分析是否有瓶頸;
2. show processlist查看MySQL當前的執行狀態,查看是否有大量的Sleep或Locked狀態;
c語言讀取mysql庫中的數據的程序頭文件怎麼設置
Mysql C API編程步驟
1、首先我們要包含mysql的頭文件,並鏈接mysql動態庫。即添加以下語句:
#include WinSock2.h // 進行網絡編程需要winsock2.h
#include mysql.h
#pragma comment(lib, “libmysql.lib”)
2、創建MYSQL變量。如:
MYSQL mysql;
3、初始化MYSQL變量。
mysql_init(mysql);
4、調用mysql_real_connect函數連接Mysql數據庫。mysql_real_connect函數的原型如下:
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsigned long clientflag);
參數說明:mysql–前面定義的MYSQL變量;host–MYSQL服務器的地址;user–登錄用戶名;passwd–登錄密碼;db–要連接的數據庫;port–MYSQL服務器的TCP服務端口;unix_socket–unix連接方式,為NULL時表示不使用socket或管道機制;clientflag–Mysql運行為ODBC數據庫的標記,一般取0。連接失敗時該函數返回0。
5、調用mysql_real_query函數進行數據庫查詢。mysql_real_query函數的原型如下:
int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length);
參數說明:mysql–前面定義的MYSQL變量;q–SQL查詢語句;length–查詢語句的長度。
查詢成功則該函數返回0。
6、通過調用mysql_store_result或mysql_use_result函數返回的MYSQL_RES變量獲取查詢結果數據。
兩個函數的原型分別為:
MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);
MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);
這兩個函數分別代表了獲取查詢結果的兩種方式。第一種,調用mysql_store_result函數將從Mysql服務器查詢的所有數據都存儲到客戶端,然後讀取;第二種,調用mysql_use_result初始化檢索,以便於後面一行一行的讀取結果集,而它本身並沒有從服務器讀取任何數據,這種方式較之第一種速度更快且所需內存更少,但它會綁定服務器,阻止其他線程更新任何錶,而且必須重複執行mysql_fetch_row讀取數據,直至返回NULL,否則未讀取的行會在下一次查詢時作為結果的一部分返回,故經常我們使用mysql_store_result。
7、調用mysql_fetch_row函數讀取結果集數據。
上述兩種方式最後都是重複調用mysql_fetch_row函數讀取數據。mysql_fetch_row函數的原型如下:
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
參數result就是mysql_store_result或mysql_use_result的返回值。
該函數返回MYSQL_ROW型的變量,即字符串數組,假設為row,則row〔i〕為第i個字段的值。當到結果集尾部時,此函數返回NULL。
8、結果集用完後,調用mysql_free_result函數釋放結果集,以防內存泄露。mysql_free_result函數的原型如下:
void STDCALL mysql_free_result(MYSQL_RES *result);
9、不再查詢Mysql數據庫時,調用mysql_close函數關閉數據庫連接。mysql_close函數的原型為:
void STDCALL mysql_close(MYSQL *sock);
怎樣讀取mysql數據庫文本(text)字段的值?
讀取mysql數據庫文本字段的值方法如下:
public
void
read()
{
try
{
//連接數據庫
conn
=
JdbcUtils.getConnection();
//查詢resume字段,text格式
String
sql
=
“select
resume
from
testclob
where
id=1″;
pt
=
conn.prepareStatement(sql);
//執行查詢並返回結果
rs
=
pt.executeQuery();
if
(rs.next())
{
//
rs.getCharacterStream讀取該字段
Reader
reader
=
rs.getCharacterStream(“resume”);
//定義字符數組來存放讀取值
char
buffer[]
=
new
char[1024];
while
((reader.read(buffer))
!=
-1)
{
//打印
System.out.println(buffer);
}
reader.close();
}
}
catch
(Exception
e)
{
e.printStackTrace();
}
finally
{
JdbcUtils.release(conn,
pt,
rs);
}
}
原創文章,作者:SZET,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/148992.html