本文目錄一覽:
- 1、關於php操作mysql執行資料庫查詢的一些常用操作匯總
- 2、MySQL資料庫設置遠程訪問許可權方法小結
- 3、關於Ubuntu中的MySQL操作
- 4、關於mysql資料庫操作
- 5、mysql幾個常見問題匯總
- 6、mysql資料庫軟體怎麼使用,如何連接數據?
關於php操作mysql執行資料庫查詢的一些常用操作匯總
php操作mysql步驟:
1.$connect=mysql_connect(‘localhost’,’root’,’123456′)
or
die(‘資料庫連接失敗。’mysql_error());鏈接mysql。
2.mysql_select_db(‘database’,$connect)選擇鏈接的資料庫。
3.mysql_query(‘Set
names
gb2312′);$sql
=
“select
*
from
blog_article”;準備要查詢的數據。
4.$datas
=
mysql_query($sql);執行sql查詢。
5.$data
=
mysql_fetch_assoc($datas)得到查詢到的緩存在內存中的一條數據。
6.print_r($data);
相同點:三個函數都是返回資料庫中查詢到的一行數據(說的再清楚點就是一條數據)。
不同點:mysql_fetch_assoc()用的是資料庫中相應的欄位名作為的key值(也就是數組下標)
如:filed[‘id’]=1;
mysql_fetch_row()用的是自動生成的數字(從0開始依次生成)作為的key值(也就是數組下標)
如:filed[0]=1;
mysql_fetch_array()用的是自動生成的數字(從0開始依次生成)作為的key值(也就是數組下標),而且它還同時生成資料庫中相應的欄位名作為的key值(也就是數組下標)
如:
filed[0]=1,filed[‘id’]=1;也就是說,mysql_fetch_array()將mysql_fetch_assoc()和mysql_fetch_row()查詢到的結果合為了一體了。
mysql_fetch_object()與mysql_fetch_assoc()差不多。只是mysql_fetch_assoc()返回的是數組。mysql_fetch_object()返回的是object對象。
mysql_insert_id() 取得上一步
INSERT
操作產生的
ID。
mysql_result()
函數返回結果集中一個欄位的值。
mysql_num_fields()
函數返回結果集中欄位的數目。
mysql_affected_rows();返回前一次
MySQL
操作所影響的記錄行數。
mysql_num_rows(mysql_query($sql))獲得結果集中行的數目。
mysql_pconnect()
函數打開一個到
MySQL
伺服器的持久連接。
mysql_pconnect()
和
mysql_connect()
非常相似,但有兩個主要區別:
1.
當連接的時候本函數將先嘗試尋找一個在同一個主機上用同樣的用戶名和密碼已經打開的(持久)連接,如果找到,則返回此連接標識而不打開新連接。
2.
其次,當腳本執行完畢後到
SQL
伺服器的連接不會被關閉,此連接將保持打開以備以後使用(mysql_close()
不會關閉由
mysql_pconnect()
建立的連接)。
mysql_data_seek(mysql_query($sql),8);獲得結果集中的第8條數據。(mysql_num_rows(mysql_query($sql))和mysql_data_seek(mysql_query($sql),8)在mysql_unbuffered_query($sql)不可以使用。)
mysql_unbuffered_query($sql)和mysql_query($sql)效果差不多,但是
mysql_unbuffered_query($sql)不緩存。mysql_query($sql)會緩存查詢的結果。
mysql_close();關閉mysql的最近的鏈接。
mysql_field_flags(mysql_query($sql),6)返回第六個欄位的表屬性輸出如:not_null
primary_key
auto_increment
。
mysql_fetch_lengths(mysql_query($sql))返回該條數據的所有欄位的每個欄位的長度。返回的是一個數字組成的數組。
mysql_field_name(mysql_query($sql),3)返回第三個欄位的欄位名。
mysql_field_table(mysql_query($sql),0)返回指定欄位所在的表名。
mysql_free_result(mysql_query($sql))
函數釋放結果內存。
mysql_get_client_info()
函數返回
MySQL
客戶端信息。
mysql_get_host_info()
取得
MySQL
主機信息。
MySQL資料庫設置遠程訪問許可權方法小結
MySQL基礎知識第一期,如何遠程訪問MySQL資料庫設置許可權方法總結,討論訪問單個資料庫,全部資料庫,指定用戶訪問,設置訪問密碼,指定訪問主機。
1,設置訪問單個資料庫許可權
複製代碼
代碼如下:
mysqlgrant
all
privileges
on
test.*
to
‘root’@’%’;
說明:設置用戶名為root,密碼為空,可訪問資料庫test
2,設置訪問全部資料庫許可權
複製代碼
代碼如下:
mysqlgrant
all
privileges
on
*.*
to
‘root’@’%’;
說明:設置用戶名為root,密碼為空,可訪問所有資料庫*
3,設置指定用戶名訪問許可權
複製代碼
代碼如下:
mysqlgrant
all
privileges
on
*.*
to
‘liuhui’@’%’;
說明:設置指定用戶名為liuhui,密碼為空,可訪問所有資料庫*
4,設置密碼訪問許可權
複製代碼
代碼如下:
mysqlgrant
all
privileges
on
*.*
to
‘liuhui’@’%’
IDENTIFIED
BY
‘liuhui’;
說明:設置指定用戶名為liuhui,密碼為liuhui,可訪問所有資料庫*
5,設置指定可訪問主機許可權
複製代碼
代碼如下:
mysqlgrant
all
privileges
on
*.*
to
‘liuhui’@’10.2.1.11’;
說明:設置指定用戶名為liuhui,可訪問所有資料庫*,只有10.2.1.11這台機器有許可權訪問
還可以設置指定訪問某個資料庫下的某個數據表,請繼續關注MySQL基礎知識系列。
關於Ubuntu中的MySQL操作
關於Ubuntu中的MySQL操作
ubuntu下mysql的常用命令,MySQL資料庫的基本操作命令
一、mysql服務操作
0、查看資料庫版本 sql- status;
1、net start mysql //啟動mysql服務
2、net stop mysql //停止mysql服務
3、mysql
-h主機地址 -u用戶名 -p用戶密碼 //進入mysql資料庫
4、quit //退出mysql操作
5、mysqladmin -u用戶名
-p舊密碼 password 新密碼 //更改密碼
6、grant select on 資料庫.* to 用戶名@登錄主機 identified by
“密碼” //增加新用戶
exemple:
例2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,並可以對資料庫mydb進行查詢、插入、修改、刪除的操作
(localhost指本地主機,即MYSQL資料庫所在的那台主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據
庫,只能通過MYSQL主機上的web頁來訪問了。
grant select,insert,update,delete on mydb.* to
test2@localhost identified by “abc”;
如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grant
select,insert,update,delete on mydb.* to test2@localhost identified by “”;
關於mysql資料庫操作
1.
create
database
school;//創建資料庫
2.
show
databases;
//查看資料庫
3.
use
school;
//使用創建的資料庫
4.
create
table
students
(
s_no
int
,name
varchar(20),gender
varchar(10),birthday
datetime,image
blob
,address
varchar(50),
c_no
int,primary
key
(s_no,c_no)
);
//建students表
5.
create
table
classes(c_no
int,name
varchar(20)
,
class_adviser
varchar(20)
,foreign
key(c_no)
REFERENCES
students(c_no));
//建classes表
6.
insert
into
students(s_no,name,gender,birthday,image,address,c_no)
values(1,’Sally’,’FM’,’1987-1-2′,null,’aaaaa’,1);
7.
insert
into
students(s_no,name,gender,birthday,image,address,c_no)
values(2,’Nicholas’,’M’,’1985-8-8′,Null,’bbbbb’,1);
8.
insert
into
students(s_no,name,gender,birthday,image,address,c_no)
values(3,’Jason’,’M’,’1988-5-19′,Null,’ccccc’,2);
9.
insert
into
students(s_no,name,gender,birthday,image,address,c_no)
values(4,’Jamile’,’M’,’1979-2-5′,Null,’ddddd’,2);
10.
insert
into
classes
(c_no,name,class_adviser)
values
(1,’Class1′,’Mike’);
11.
insert
into
classes
(c_no,name,class_adviser)
values
(2,’Class2′,’Andy’);
12.
select
a.*
from
students
a,
classes
b
where
a.c_no
in
(select
b.c_no
from
classes
b
where
b.class_adviser
=
‘Mike’)
and
a.c_no
=
b.c_no;
//查數據
或者
select
students.s_no,
students.name,
students.gender,
students.birthday,
students.image,
students.address,
students.c_no
from
students,
classes
where
students.c_no
in
(select
c_no
from
classes
where
class_adviser
=
‘Mike’)
and
students.c_no
=
classes.c_no;
盧旭
mysql幾個常見問題匯總
一、Can』t connect to MySQL server on 『localhost』 (10061)
翻譯:不能連接到 localhost 上的mysql
分析:這說明「localhost」計算機是存在的,但在這台機器上卻沒提供MySQL服務。
需要啟動這台機器上的MySQL服務,如果機子負載太高沒空相應請求也會產生這個錯誤。
解決:既然沒有啟動那就去啟動這台機子的mysql。如果啟動不成功,多數是因為你的my.ini配置的有問題。重新配置其即可。
如果覺得mysql負載異常,可以到mysql/bin 的目錄下執行mysqladmin -uroot -p123 processlist來查看mysql當前的進程。
二、Unknown MySQL Server Host 『localhosadst』 (11001)
翻譯:未知的MySQL伺服器 localhosadst
分析:伺服器 localhosasdst 不存在。或者根本無法連接
解決:仔細檢查自己論壇下面的 ./config.inc.php 找到$dbhost重新設置為正確的mysql 伺服器地址。
三、Access denied for user: 『roota@localhost』 (Using password: YES)
翻譯:用戶 roota 訪問 localhost 被拒絕(沒有允許通過)
分析:造成這個錯誤一般資料庫用戶名和密碼相對mysql伺服器不正確
解決:仔細檢查自己論壇下面的 ./config.inc.php 找到$dbuser、$dbpw核實後重新設置保存即可。
四、Access denied for user: 『red@localhost』 to database 『newbbs』
翻譯:用戶 red 在localhost 伺服器上沒有許可權操作資料庫newbbs
分析:這個提示和問題三是不同的。那個是在連接資料庫的時候就被阻止了,而這個錯誤是在對資料庫進行操作時引起的。比如在select update等等。這個是因為該用戶沒有操作資料庫相應的權力。比如select 這個操作在mysql.user.Select_priv里記錄 Y 可以操作N 不可以操作。
解決:如果是自己的獨立主機那麼更新mysql.user 的相應用戶記錄,比如這裡要更新的用戶為red 。或者直接修改 ./config.inc.php 為其配置一個具有對資料庫操作許可權的用戶
或者通過如下的命令來更新授權grant all privileges on dbname.* to 『user』@』localhost』 identified by 『password』
提示:更新了mysql庫中的記錄一定要重啟mysql伺服器才能使更新生效
FLUSH PRIVILEGES;
五、No Database Selected
翻譯:沒有資料庫被選擇上
分析:產生的原因有兩種
config.inc.php 裡面$dbname設置的不對。致使資料庫根本不存在,所以在 $db-select_db($dbname); 時返回了false
和上面問題四是一樣的,資料庫用戶沒有select許可權,同樣會導致這樣的錯誤。當你發現config.inc.php的設置沒有任何問題,但還是提示這個錯誤,那一定就是這種情況了。
解決:對症下藥
打開config.inc.php 找到$dbname核實重新配置並保存
同問題四的解決方法
六、Can』t open file: 『xxx_forums.MYI』. (errno: 145)
翻譯:不能打開xxx_forums.MYI
問題分析:
這種情況是不能打開 cdb_forums.MYI 造成的,引起這種情況可能的原因有:
1、伺服器非正常關機,資料庫所在空間已滿,或一些其它未知的原因,對資料庫表造成了損壞。
2、類 unix 操作系統下直接將資料庫文件拷貝移動會因為文件的屬組問題而產生這個錯誤。
解決方法:
1、修複數據表
可以使用下面的兩種方式修複數據表:(第一種方法僅適合獨立主機用戶)
1)使用 myisamchk ,MySQL 自帶了專門用戶數據表檢查和修復的工具 —— myisamchk 。更改當前目錄到 MySQL/bin 下面,一般情況下只有在這個下面才能運行 myisamchk 命令。常用的修復命令為:myisamchk -r 數據文件目錄/數據表名.MYI;
2)通過 phpMyAdmin 修復, phpMyAdmin 帶有修複數據表的功能,進入到某一個表中後,點擊「操作」,在下方的「表維護」中點擊「修復表」即可。
注意:以上兩種修復方式在執行前一定要備份資料庫。
mysql資料庫軟體怎麼使用,如何連接數據?
可以使用mysql推出的mysqlconnector/net組件,該組件是mysql為ado.net訪問mysql資料庫設計的.net專用訪問組件,完成該組件後,需要在項目中引用這個組件,之後在程序中引用命名空間mysql.data.mysqlclient,即可開始進行連接mysql資料庫的操作了,示例如下:
protected
voidmysqlcon()
{
//資料庫連接字元串跟連接sqlserver沒有區別
string
constr
=
“server=localhost;userid=root;password=root;database=test”;
//下面使用mysql
connector/net提供的專用對象
mysqlconnection
mycon
=
new
mysqlconnection(constr);
mycon.open();
mysqlcommandmycmd
=
new
mysqlcommand(“select
*
from
users”,
mycon);
mysqldatareader
myreader
=
mycmd.executereader();
while
(myreader.read())
{
if
(myreader.hasrows)
{
messagebox.show(myreader.getstring(“email”)
);
}
}
myreader.close();
mycon.close();
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/283099.html