LAMP筆記之MySQL高階篇(5)

mysql in web
{
php操縱mysql數據庫的過程一般包括以下幾個步驟:
>>將sql語句賦值給某個字符串變量;
>>執行sql語句;
>>如果是select語句,則從遊標當前位置讀取一條記錄的數據。
}
 
mysql 高級管理
{
增加新用戶並授權
mysql> grant all on huazi_test.huazi_test_1 to newuser@localhost identified by "password";
Query OK, 0 rows affected (0.00 sec)
 
收回權限
mysql> revoke all on huazi_test_1 from newuser@localhost;
Query OK, 0 rows affected (0.00 sec)
 
刪除用戶,重新加載授權表
mysql> use mysql;
Database changed
mysql> delete
    -> from user
    -> where user="newuser" and host="localhost";
Query OK, 1 row affected (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
用戶管理表
直接修改用戶密碼
mysql> use mysql;
Database changed
mysql> update user
    -> set password=password("password")
    -> where user='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0
 
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
 
管理日誌文件
類型:
>>常規日誌文件:記錄客戶機連接、事件,跟linux其它服務器日誌差不多;
>>更新日誌:包括delete、insert、drop、grant等;
 
恢復數據庫的過程使用兩個信息源:備份文件和更新日誌;
 
備份文件恢復數據庫,前面的導入數據庫已經講到
強調一點:如果要恢復的數據庫是含有授權表的mysql數據庫,則需要
使用--skip-grant-tables選項啓動服務器。否則,服務器將提示無法
找到授權表。恢復表以後,執行以下命令:
mysqladmin flush-privileges
告訴服務器加載授權表,並用它們啓動。
 
更新日誌恢復數據庫:
mysql --one-database db_name<update.001
用--one-database選項指定只對想要的數據庫執行查詢命令;
!!!刪除日誌文件中引起數據丟失的操作語句:drop、delete等。
 
添加常規和更新日誌設置
vi /etc/my.cnf
{
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
log=/var/log/mysqld/log.log //手動添加
log-update=/var/log/mysqld/update.log //手動添加
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
[mysqld_safe]
log-error=/var/log/mysqld/mysqld.log //修改在mysqld目錄下吧
pid-file=/var/run/mysqld/mysqld.pid
}
 
[root@huazi ~]# mkdir /var/log/mysqld
[root@huazi ~]# chown mysql.mysql /var/log/mysqld
[root@huazi ~]# /etc/init.d/mysqld restart
停止 mysqld:                                              [確定]
正在啓動 mysqld:                                          [確定]
[root@huazi ~]# ls /var/log/mysqld
log.log  mysqld.log  update.000001  update.index
}
 
系統數據庫mysql
{
user表有三個列:
>>host 主機名或者一個IP地址
>>User 用戶名。常量或者空值,空值表示匿名用戶。
>>password 用戶口令。用grant語句和mysqladmin password對口令加密。
                    使用insert等直接對user操作的時候,需要用password("new_password")加密。
 
用戶和權限管理
>>grant:簡單
>>insert:細心一點
>>update:別忘了重新加載mysqladmin flush-privileges或者mysqladmin reload
 
超級用戶是這樣來的:
>>>>grant all on *.* to super_user@localhost identified by "my_passwoed" with grant option;
評:一句話搞定
>>>>insert into user values ('localhost','super_user',PASSWORD('my_password'),
'Y','Y','Y',...'Y');
下面是我用select * from user where user='root'的結果,有多少個Y,自己數數看吧。
| localhost | root | *8EE196D30FE2469CFB8A31A7930CF28AC88F3492 | Y           | Y           
| Y           | Y           | Y           | Y         | Y           | Y             
| Y            | Y         | Y          | Y               | Y          | Y          
| Y            | Y          | Y                     | Y                | Y            
| Y               | Y                | Y                | Y              | Y                   
| Y                  | Y                | Y          | Y            |          |            
|             |              |             0 |           0 |               0 |                    
0 | 
評:grant語句很大原因是因爲insert權限而存在的。                                      
 
數據庫級用戶是這樣來的:
>>>>grant all on student_course.* to db_user@localhost identified by "my_passwd"
    with grant option;
評:一句話搞定
>>>>insert into user(host,user,password)
    values('localhost','db_user',PASSWORD('my_passwd'));
    insert into db
    values('localhost','student_course','db_user','Y','Y','Y','Y'...);
select * from db where user='db_user'的結果如下,明顯少了很多Y
| localhost | database_huazi | db_user | Y           | Y           | Y           
| Y           | Y           | Y         | Y          | Y               | Y          
| Y          | Y                     | Y                | Y                
| Y              | Y                   | Y                  | Y            
| Y          | Y            |
評:grant語句很好用
}
 
 
 
 
嘎嘎,用了幾天時間,把linux,apache,mysql的基礎知識梳理了一遍。
哇哇,頭都大鳥,溫故而知新,永遠都不要懷疑知識是有盡頭的。。。
記住這句話,我們就變得謙卑多了。。。
還有個php,那個不是一兩天就能梳理完的,一個受全世界歡迎的語言不是
一兩天就能搞定的。
先到這裏吧。。。。
待續。。。
.
.
.
.
.
.
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章