九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
學(xué)習(xí)MySQL

學(xué)習(xí) MySQL

作者:孔建軍

1 MySQL 介紹

MySQL是瑞典 MySQL AB公司開發(fā)的一個完全網(wǎng)絡(luò)化的跨平臺關(guān)系型數(shù)據(jù)庫系統(tǒng),具有多用戶、多線程、多種客戶工具和API支持、低消耗、底成本、高性能等特點。她具有客戶機/服務(wù)器體系結(jié)構(gòu)的分布式數(shù)據(jù)庫管理系統(tǒng),由一個服務(wù)器守護進程 mysqld 和不同客戶程序和庫組成。由于其源碼的開放性及穩(wěn)定性,在 WEB開發(fā)應(yīng)用等方面得到了廣泛使用,具有較強的競爭力和市場前景。目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即操作系統(tǒng)使用GNU/Linux,Web服務(wù)器使用Apache,數(shù)據(jù)庫服務(wù)器使用MySQL,服務(wù)器端腳本解釋器使用PHP。這四個軟件都遵循 GPL協(xié)議開放源代碼,用戶可以快速搭建一個真正穩(wěn)定、免費的網(wǎng)站系統(tǒng)。雖然沒有大型專業(yè)數(shù)據(jù)庫(如Orcal)高端功能強大,但其靈活方便等優(yōu)勢也贏得了眾多用戶的關(guān)注。
Sun于今年初以10億美元高價收購MySQL,據(jù)說 Sun 準(zhǔn)備關(guān)閉MySQL備份方案的源代碼,許多高級功能的代碼也將不再開放,即不會再免費向開源社區(qū)貢獻。
MySQL 特征:

    1.使用C和C++編寫,并使用了多種編譯器進行測試,保證了源代碼的可移植性
    2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)
    3.為多種編程語言提供了API。這些編程語言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等
    4.支持多線程,充分利用CPU資源
    5.優(yōu)化的SQL查詢算法,有效地提高查詢速度
    6.既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名
    7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑
    8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具
    9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫
MySQL 官方網(wǎng)站:http://www.mysql.com/

2 運行效果

kongove@ubuntu:~/Desktop/zeuux.org$ mysql -h localhost -u root -pEnter password:Type 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> use test;Database changedmysql> select * from student;+------+--------------+| id	      | name                     |+------+--------------+|    1        | XiyouLinux           |+------+--------------+1 rows in set (0.01 sec)mysql>

3 基本使用

3.1 安裝

  • Redhat 下使用可執(zhí)行壓縮包安裝 MySQL:
  • # rpm -qa|grep mysql
    查看是否已經(jīng)安裝 mysql
    # wget http://URL-OF-MySQL/mysql.tar.gz
    下載 mysql 軟件包
    # tar xcvf mysql.tar.gz
    解壓軟件包
    # cd mysql/
    # make
    # make install
    # cd scripts
    # mysql_install_db
    完成具體編譯、安裝
  • Fedora 下通過軟件包管理工具 yum 安裝 MySQL:
  • # yum install mysql-server mysql-client mysqlversion
  • Ubuntu 下通過APT軟件包管理工具安裝 MySQL:
  • # apt-get install mysql-server mysql-client mysqlversion

3.2 配置

  • 啟動系統(tǒng)時自動運行 MySQL 服務(wù)器
  • 在 /etc/rc.local中添加啟動一行命令: /etc/init.d/mysql start
  • 配置數(shù)據(jù)庫用戶
  • 安裝mysql過程中,會自動提示設(shè)置默認(rèn)用戶 root 的登錄數(shù)據(jù)庫密碼。
    管理員還可以使用GRANT語句添加新用戶并指定其權(quán)限,使用REVOKE語句刪除指定用戶權(quán)限。

    $ mysql> grant select,insert,update,delete on *.* to "new_user"@"%" Identified by "password";
    添加新用戶new_user,密碼為password,讓該用戶可在任何主機上登錄,并對所有數(shù)據(jù)庫有查詢、插入、修改、刪除的權(quán)限。
    $ mysql> delete from user where User="user_name"; $ mysql> flush privileges;
    delete語句刪除指定用戶記錄,flush語句告訴服務(wù)器重載授權(quán)表。
    $ mysql> grant select on table $tablename to $user;
    把查詢$tablename表的權(quán)利授給用戶$user
    $ mysql> grant select on table $tablename to public;
    把對表$tablename查詢的權(quán)利給所有用戶
    $ mysql> grant createtab on database $databasename to $user;
    把在數(shù)據(jù)庫$databasename中創(chuàng)建新表的權(quán)利授給用戶$user
    $ mysql> revoke update(id) on table $tablename from $user;
    把用戶$user更新$tablename表 id 數(shù)據(jù)項的權(quán)利收回

    aCREATE和REVOKE語句影響4個表:
    授權(quán)表 內(nèi)容
    user 能連接服務(wù)器的用戶以及他們擁有的任何全局權(quán)限
    db 數(shù)據(jù)庫級權(quán)限
    tables_priv 表級權(quán)限
    columns_priv 列級權(quán)限

3.3 測試

# mysqladmin version
查看 MySQL 服務(wù)器是否正在運行
# mysqladmin -u root shutdown
測試服務(wù)器是否可以關(guān)閉
# mysqlshow
顯示所有數(shù)據(jù)庫
# mysqlshow $database
顯示指定數(shù)據(jù)庫中的表信息

3.4 基本操作

  • 服務(wù)器命令:
  • #/etc/init.d/mysql start
    啟動數(shù)據(jù)庫服務(wù)
    #/etc/init.d/mysql stop
    關(guān)閉數(shù)據(jù)庫服務(wù)
    #/etc/init.d/mysql restart
    重啟數(shù)據(jù)庫服務(wù)
    #/etc/init.d/mysql status
    查看數(shù)據(jù)庫服務(wù)狀態(tài)
    #/etc/init.d/mysql reload
    重新加載服務(wù)
    # /etc/init.d/mysql force-reload
    強制重新加載服務(wù)
  • 客戶端命令選項:
  • mysql [-h $hostname] [-u $username] -p $datebasename
    選項 含義
    -h $hostname 指定數(shù)據(jù)庫服務(wù)器,可以為IP地址或者域名
    -p 提示用戶輸入密碼
    -u $username 指定用戶名
    $databasename 指定數(shù)據(jù)庫名
  • 客戶端內(nèi)部命令:
  • 命令 簡潔命令 含義
    (\?) 等價于'help'
    clear (\c) 清除命令
    connect (\r) 重新連接服務(wù)器,選項參數(shù)是數(shù)據(jù)庫名和主機名
    delimiter (\d) 設(shè)置定界符
    edit (\e) 采用 $EDITOR 編輯命令
    ego (\G) 向 mysql 數(shù)據(jù)庫服務(wù)器發(fā)送命令,并將返回結(jié)果垂直輸出
    exit (\q) 退出 mysql, 等價與 quit
    go (\g) 向數(shù)據(jù)庫服務(wù)器發(fā)送命令
    help (\h) 顯示此幫助信息
    nopager (\n) 緊用 PAGER,打印到標(biāo)準(zhǔn)輸出
    notee (\t) 不寫入輸出文件
    pager (\P) 設(shè)置通過 PAGER 打印結(jié)果
    print (\p) 打印當(dāng)前命令
    prompt (\R) 改變 mysql 提示模式
    quit (\q) 退出 mysql
    rehash (\#) 重新編譯完成 hash
    source (\.) 執(zhí)行 SQL 腳本文件,帶一個文件名作為參數(shù)
    status (\s) 從服務(wù)器得到狀態(tài)信息
    system (\!) 執(zhí)行一個 Shell 命令
    tee (\T) 指定輸出文件,添加所有信息到此文件
    use (\u) 指定別的數(shù)據(jù)庫,新數(shù)據(jù)庫名作為參數(shù)
    charset (\C) 轉(zhuǎn)換成另一個字符編碼,可能需要處理多自己編碼的 binlog
    warnings (\W) 顯示執(zhí)行指令的警告信息
    nowarning (\w) 不顯示執(zhí)行指令的警告信息
  • 常用客戶端命令范例:
  • $mysql -h mysql.kongove.cn -u kong -p
    登錄數(shù)據(jù)庫
    $ mysql> show databases;
    顯示當(dāng)前服務(wù)器上所有數(shù)據(jù)庫
    $ mysql> use $databasename;
    選擇使用數(shù)據(jù)庫
    $ mysql> show tables;
    顯示當(dāng)前數(shù)據(jù)庫中的所有表
    $ mysql> create database $databasename;
    創(chuàng)建數(shù)據(jù)庫
    $ mysql> create table $tablename(id int, name char(5), age int);
    在當(dāng)前數(shù)據(jù)庫里創(chuàng)建表
    $ mysql> create view $viewname as select id, name from $tablename;
    在當(dāng)前數(shù)據(jù)庫里創(chuàng)建視圖
    $ mysql> drop table $tablename;
    刪除當(dāng)前數(shù)據(jù)庫里指定的表
    $ mysql> drop view $viewname;
    刪除當(dāng)前數(shù)據(jù)庫里指定的視圖
    $ mysql> select * from $tablename;
    顯示指定表的內(nèi)容
    $ mysql> select id, name from $tablename;
    顯示指定表中指定數(shù)據(jù)項
    $ mysql> select name from $viewname;
    顯示指定視圖中指定內(nèi)容
    $ mysql> select * from $tablename where id>20;
    根據(jù)條件篩選查看指定表中id號大于20的表項
    $ mysql> select id from $tablename where age=(select age from $tablename2 where name='孔建軍');
    帶有比較運算符的子查詢
    $ mysql> insert into $tablename(id,name,score) values(1,'kong',100);
    添加指定表項
    $ mysql> update $tablename set score=99 where id=1;
    修改指定表中滿足條件表項的相關(guān)值
    $ mysql> delete from $tablename where id=1;
    刪除滿足條件的指定表項

4 數(shù)據(jù)備份與恢復(fù)

  • 備份數(shù)據(jù)庫原則:
  • 1. 定期實施備份;
    2. 讓服務(wù)器執(zhí)行更新日志;
    3. 使用一種傳統(tǒng)、易理解的備份文件名機制;
    4. 用文件系統(tǒng)備份用戶的備份文件。
  • 備份
  • $ mysqldump -h $hostname -u $username -p $databasename >2008.5.22.sql
    使用 mysqldump 備份整個數(shù)據(jù)庫到文件2008.5.22.sql
    $ cp -r $datadir/$databasename /usr/archive/mysql/
    直接復(fù)制數(shù)據(jù)庫進行數(shù)據(jù)備份
    編寫Shell腳本,自動備份數(shù)據(jù)庫內(nèi)容:
    #!/bin/bash    #備份指定服務(wù)器、用戶名的數(shù)據(jù)庫內(nèi)容,并以當(dāng)前時間命名文件。    mysqldump -u username -h hostname -p databasename > `date +%Y%m%d_%H:%M:%S`.sql    運行腳本完成備份:    [crystallight]$ ./mysqldump.sh    Enter password:    [crystallight]$ ls    20081014_22:56:39.sql	mysqldump.sh
  • 還原
  • $ mysql> source 2008.5.22.sql
    使用備份文件還原數(shù)據(jù)庫
    $ mysql -u root -h mysql.kongove.cn -p $databasename <2008.5.22.sql
    使用備份文件還原指定數(shù)據(jù)庫

5 數(shù)據(jù)庫連接

  • PHP連接 MySQL 數(shù)據(jù)庫
  • $db['host'] = "222.24.20.86";    $db['user'] = "kong";    $db['pass'] = "passwrod";    $db['database'] = "kong_database";    $db['table'] = "kong_table";    #連接數(shù)據(jù)庫    ql_connect($db['host'],$db['user'],$db['pass']);    mysql_select_db($db['database']);    mysql_query($sql);    #插入數(shù)據(jù)項    $sql = "insert into ".$table." (id,user_name,user_info,head_type,hide,message,ip,time,reply,    reply_time) values(null,'$user_name','$user_info','$head_type','$hide','$message','$ip','$time',null,null);";    $result = mysql_query($sql);    #篩選查詢    $sql = "select * from $table order by id desc limit $start_msg,$max_msg;";    $result = mysql_query($sql);    
  • Jsp 連接 MySQL 數(shù)據(jù)庫
  • String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"    Connection conn= DriverManager.getConnection(url);    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);    String sql="select * from test";    ResultSet rs=stmt.executeQuery(sql);    
  • C 語言連接 MySQL 數(shù)據(jù)庫
  • MYSQL *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 int client_flag)    
  • Python 連接數(shù)據(jù)庫
  • import MySQLdb as mydb    db = mydb.connect(host='192.168.0.110',user='jianjun',passwd='lovelinux',db='webdatabase', charset="utf-8")    cur = db.cursor()    sql = unicode("select user,id from user_table where sex = '男'","utf-8")    print sql    cur.execute(sql)    cur.close()    db.close()    

6 圖形管理工具

phpMyAdmin、mysql-admin、MySQL Administrator、MySQL Query Browser、phpMyBackupPro 等都是不錯的圖形化管理數(shù)據(jù)庫工具,可以方便的進行數(shù)據(jù)庫各項管理、維護操作。
phpMyAdmin 可以通過 web 界面,使用 http 方式來進行連接管理,用戶在瀏覽器即可完成管理任務(wù),不需要特殊軟件環(huán)境。Web服務(wù)器端必須支持php解析功能。在Web服務(wù)器端配置好 apache 和 php ,下載 phpadmin,解壓到 apache能夠訪問的一個目錄中。修改phpadmin/config.inc.php文件,其中主要是對mysql連接方式,連接路徑以及用戶名密碼的設(shè)置。然后運行訪問 index.php 進入管理頁面。
MySQL Administrator、MySQL Query Browser、mysql-admin 是linux系統(tǒng)中幾款數(shù)據(jù)庫管理軟件,其管理功能完備,配置簡單。
phpMyBackupPro 也是由 PHP 寫成的,可以透過 Web 介面創(chuàng)建和管理數(shù)據(jù)庫。它可以創(chuàng)建偽 cronjobs,可以用來自動在某個時間或周期備份MySQL 數(shù)據(jù)庫。

7 總結(jié)

8 參考資料

from site : http://www.zeuux.org/science/learning-mysql.cn.html
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MySQL數(shù)據(jù)庫備份和還原的常用命令
mysql在cmd命令下執(zhí)行數(shù)據(jù)庫操作
mysqldump導(dǎo)入導(dǎo)出mysql數(shù)據(jù)庫
命令行模式下備份、還原 MySQL 數(shù)據(jù)庫的語句小結(jié)
Java中CMD命令來備份mysql數(shù)據(jù)庫備份文件出來為0字節(jié)問題
備份WordPress數(shù)據(jù)庫
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服