mysql學習筆記

一:安裝後的配置
    文件目錄:
        數據庫目錄
            /var/lib/mysql/
        配置文件
            /usr/share/mysql(mysql.server命令及配置文件)
        相關命令
            /usr/bin(mysqladmin mysqldump等命令)
        啓動腳本  
             /etc/rc.d/init.d/mysqld(啓動腳本文件mysql的目錄)

    啓動:
            su  - mysql
            /etc/rc.d/init.d/mysqld  start  
            注:我的是mysqld,也可能是mysql
    
    獲取信息:
            $ mysql  -u  root mysql
            注:如果你得到一些信息,然後是mysql>提示符,說明已經進入了。輸入/s可以得到更多信息
            
            
            $ mysqladmin -u root version
            注:查看版本號
    修改密碼:
            $ mysqladmin -u root password newpassword
            注:newpassword便是新密碼,剛開始的時候默認是無密碼的。但是這種修改密碼的方法不安全
            因爲終端會有記錄,留在shell歷史中。更好的方法就是通過mysql控制檯,使用sql語句。
            
            $ mysql -u -root
            mysql> SET password=PASSWORD('newpassword');
            注:newpassword的位置輸入你的密碼。下面查看密碼。
            
            mysql>SELECT user, host, password FROM mysql.user
            +------+-----------+-------------------------------------------------------+
            | user    | host             | password                                                                                          |
            +------+-----------+-------------------------------------------------------+
            | root    | localhost   | *41B6A162BA4FE528AE031B240564968C3EDB4A70 |
            | doa     | %                   | *41B6A162BA4FE528AE031B240564968C3EDB4A70 |
            +------+-----------+-------------------------------------------------------+
            2 rows in set (0.00 sec)
            注:這顯示的是我電腦裏面的密碼。下面講解如何刪除密碼。
            
            mysql> DELETE FROM mysql.user WHERE user !='root';
            注:將刪除非root用戶
            mysql> DELETE FROM mysql.user WHERE host !='localhost';
            注:將刪除非本機用戶。
            mysql> eixt;
            注:退出。或者quit; 或者/q
            
    創建用戶:
            當然你可以用root賬戶登錄,但這不是一個好選擇。需要創建一個普通用戶來爲日常使用。
            在此將創建一個擁有廣泛權限的用戶 doa。doa有三種方式進行鏈接。
                1.從本地機器連接
                2.從IP地址在192.168.0.0  —>192.168.0.255範圍內的任何機器進行鏈接
                3.從wiley.com域中的任何機器鏈接。
                
            mysql>GRANT   ALL  ON *.* TO doa@localhost IDENTIFIED BY "password";
            mysql>GRANT   ALL  ON *.* TO doa@'192.168.0.0/192.168.0.255' IDENTIFIED BY "password";
            mysql>GRANT   ALL  ON *.* TO doa@'wiley.com' IDENTIFIED BY "password";
            
            注: grant 是創建命令。ALL代表所有權限。ON *.* 使用了通配符,說明權限作用在所有的文件
            上。IDENTIFIED BY "password" 設置密碼爲pssword。
            
二:MySQL管理
    1.myisamchk
        作用:
            爲了檢查/修復MyISAM表(.MYI和.MYD)
        何時使用:
            如果你使用myisamchk修復或優化表,你必須總是保證mysqld服務器不在使用表(如果
            你正在使用--skip-locking,這也適用)。如果你不停掉mysqld,在你運行myisamchk前,你至少
            應該做一個mysqladmin flush-tables。
            在服務器啓動時檢查表是一個好主意。
        語法:
                shell> myisamchk [options] tbl_name
        事例:
                myisamchk   /path/to/datadir/*/*.MYI
        
                myisamchk -d tbl_name
                    以“描述模式”運行myisamchk,生成你的表的描述。如果你用--skip-locking選項啓動MySQL
                    服務器,myisamchk可以當它運行時報告被一個更新的表的錯誤。然而,既然在描述模式中
                    myisamchk不改變表,沒有破壞數據的任何風險。
                    
                myisamchk -d -v tbl_name                
                    爲了生成更多關於myisamchk正在做什麼的信息,加上-v告訴它以冗長模式運行。
                    
                myisamchk -eis tbl_name
                    僅顯示一個表最重要的信息。因爲必須讀取整個表,它很慢。
                    
                myisamchk -eiv tbl_name
                    這類似-eis,只是告訴你正在做什麼。

    2.mysql命令

        作用:
            這是MySQL主要的並且唯一的完全世命令行工具。
        事例:    
            $mysql -u -doa -p table_name        
            注:-p讓程序提示你輸入密碼    
            $mysql -u -doa -p table_name    < sqlcommands.sql
            注:從一個文件中讀取命令
    
    3.mysqladmin

        作用:
            進行快速管理的工具
        語法:
            shell> mysqladmin [OPTIONS] command [command-option] command ...
            詳細參數見mysqladmin --help
    4.mysqlbug

        作用:
            生成一個用於發送給MySQL維護者的錯誤報告。
    5.mysqldump
        作用:
            允許你以sql命令集的形式將部分或整個數據庫導出到一個單獨文件中。可用來備份。
        事例:
            mysqldump -u root -p mysql >mysql.dump
    6.mysqlimport
        作用:
            從輸入文件中讀取大量數據。一般讀取由mysqldump創建的文件,當然足夠耐心或者形式所迫的
            話也可以自己創建。
    7.mysqlshow
        作用:
            提供關於你的MySQL安裝及其組成數據庫的的快速信息
        事例:
            mysqlshow -u root -p
            注:列出所有可用的數據庫。
    8.grant命令
        作用:
            創建用戶並賦予權限
        格式:
            grant <privilege> on <object> to <user> [identified by user-password] [ with grant] ;
        解釋:
            <privilege>的權限有
                alter             改變表格和索引
                create            創建數據庫和表格
                delete            從數據庫中刪除數據
                drop            刪除數據庫和表格
                index            管理索引
                insert            在數據庫中插入數據
                select            提取數據
                update        修改數據
                all                以上所有
            <object>格式爲databasename.tablename,在此可以使用unix通配符*,如*.*
            <user>事例爲doa@localhost,在此可以使用sql的通配符%,如doa@'%'
            identified by 是可選的,每次都設定密碼是個好主意。
    9.revoke
        作用:
            剝奪管理員權限,但是不能刪除用戶。
        語法:
            revoke <privilege> on <object> to <user> ;
            注:這只是剝奪權限,不是刪除用戶。刪除可以用下列命令:
                mysql>use mysql
                mysql>DELETE FROM user WHERE user ="doa"
                mysql>FLUSH PRIVILEGES;
                注:delete和grant,revoke不屬於同一範疇。delete是sql語法,grant,revoke是mysql命令
                mysql裏面可以允許使用sql語法。對於grant,revoke,use命令是沒有必要的,因爲mysql知
                道你想操作權限表。
    10.修改密碼update
            語法:
                UPDATE user SET password = password('newpassword') WHERE user = 'doa';
    11.創建數據庫create
            語法:
                mysql> CREATE DATABASE newDatabase;
                mysql> use newDatabase
    
    12.創建表格create

            語法;
                CREATE TABLE table_name (
                    column_name type [ NULL | NOT NULL] [auto_increment] [PRIMARY KEY],
                    [...]
                    [PRIMARY KEY (column_name [, ...]) ]
                );
            事例:
                CREATE TABLE children (
                    childno int(11)  NOT NULL auto_increment,
                    fname varchar(13),
                    age int(11),
                    PRIMARY KEY (childno)
                );

                INSERT INTO children VALUES  (5,  'Jenny',  17) ;
                INSERT INTO children VALUES  (2,  'DOA1',  12) ;
                INSERT INTO children VALUES  (3,  'DOA2',  17) ;
                INSERT INTO children VALUES  (4,  'DOA3',  17) ;
            解釋:
                auto_increment            自動加一
                NULL                        未知的,無關的
                PRIMARY KEY                主鍵
    
三:圖形化工具

    continue。。。。    
    
    
    
    

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