• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Benjamin

            靜以修身,儉以養(yǎng)德,非澹薄無(wú)以明志,非寧?kù)o無(wú)以致遠(yuǎn)。
            隨筆 - 397, 文章 - 0, 評(píng)論 - 196, 引用 - 0
            數(shù)據(jù)加載中……

            mysql常用操作(不斷更新中)

            登陸:mysql -uroot -p u表示用戶,p表示密碼

            show variables like 'character\_set\_%';
            latin1_bin 
            西歐 (多語(yǔ)言), 二進(jìn)制 
             
            binary 
            二進(jìn)制 

            1.查看和清除mysql日志

            如果想要關(guān)閉二進(jìn)制mysql日志,可以在my.ini里把log-bin這行注釋掉

            要清二進(jìn)制日志的話,在mysql開(kāi)啟了二進(jìn)制日志的狀態(tài)下,以root身份登錄mysql以后執(zhí)行下面兩個(gè)命令之一:
            PURGE MASTER LOGS before '2020-1-1';        清除指定日期之前的二進(jìn)制日志
            PURGE MASTER LOGS TO 'mysql-bin.010';        清除指定文件編號(hào)之前的二進(jìn)制日志
            注意,如果沒(méi)運(yùn)行命令而是直接刪除mysql-bin.xxx文件的話,mysql-bin.index里仍然記錄了日志文件列表,這樣以后再清日志時(shí),就會(huì)因找不到列表中的日志文件而無(wú)法清理mysql日志
            可以用bin目錄中的mysqlbinlog.exe查看mysql二進(jìn)制日志。
            C:\>mysqlbinlog mysql-bin.000001
            如果my.ini中設(shè)置了字符集的話,可能會(huì)出現(xiàn)這以下這樣的報(bào)錯(cuò)
            mysqlbinlog: unknown variable 'default-character-set=gbk'
            帶上--no-defaults參數(shù)后即可解決
            C:\>mysqlbinlog --no-defaults mysql-bin.000001
            如果是要清理*.err日志的話,直接停止mysql數(shù)據(jù)庫(kù),將這個(gè)文件剪切走或者刪除,重啟mysql生成一個(gè)新的即可。

            .err文件中實(shí)際是以文本方式保存的錯(cuò)誤提示,可以直接用記事本打開(kāi)查看。

             

            2.清空某個(gè)mysql表中所有內(nèi)容
            delete from 表名;
            truncate table 表名;
            不帶where參數(shù)的delete語(yǔ)句可以刪除mysql表中所有內(nèi)容,使用truncate table也可以清空mysql表中所有內(nèi)容。效率上truncate比delete快,但truncate刪除后不記錄mysql日志,不可以恢復(fù)數(shù)據(jù)。
            delete的效果有點(diǎn)像將mysql表中所有記錄一條一條刪除到刪完,而truncate相當(dāng)于保留mysql表的結(jié)構(gòu),重新創(chuàng)建了這個(gè)表,所有的狀態(tài)都相當(dāng)于新表。

            3.查看編碼
            查看數(shù)據(jù)庫(kù)的字符集    show variables like 'character\_set\_%';
            latin1_bin 
            西歐 (多語(yǔ)言), 二進(jìn)制 
             
            binary 
            二進(jìn)制 
            mysql>create database mydb character set utf-8;#直接指定其編碼
            直接通過(guò)命令進(jìn)行修改
            set character_set_client=utf8;
            set character_set_connection=utf8;
            set character_set_database=utf8;
            set character_set_results=utf8;
            set character_set_server=utf8;
            修改完了之后再查詢
            show variables like 'character\_set\_%';
            +--------------------------+--------+
            | Variable_name            | Value  |
            +--------------------------+--------+
            | character_set_client     | utf8   |
            | character_set_connection | utf8   |
            | character_set_database   | utf8   |
            | character_set_filesystem | binary |
            | character_set_results    | utf8   |
            | character_set_server     | utf8   |
            | character_set_system     | utf8   |
            +--------------------------+--------+

             

            /*查詢當(dāng)前數(shù)據(jù)庫(kù)默認(rèn)字符設(shè)置*/
            show variables like 'char%';
            /*查詢當(dāng)前數(shù)據(jù)庫(kù)默認(rèn)的校驗(yàn)字符集*/
            show variables like 'collation%'

             


            結(jié)果全部都調(diào)整修改成UTF-8了!
            MySQL字符集編碼的類型種類
            gb2312_chinese_ci和gbk_chinese_ci以及gb2312_bin,gbk_bin的區(qū)別
            gb2312_chinese_CI : 只支持簡(jiǎn)體中文
            gb2312_BIN   :而gb2312_bin可以說(shuō)是gb2312_chinese_ci的一個(gè)子集,
            而且gb2312_BIN是二進(jìn)制存儲(chǔ).區(qū)分大小寫(xiě)數(shù)據(jù)庫(kù)編碼格式就意義不一樣了
            gbk_chinese_CI   支持簡(jiǎn)體中文和繁體
            gbk_bin   解釋同gb2312_BIN     對(duì)應(yīng)gbk_chinese_CI
            PS:GBK包括了簡(jiǎn)體與繁體兩種類型

            查看數(shù)據(jù)庫(kù)表中字段的字符集設(shè)置-----------show create table TableName 或 show full columns from tableName
            查看數(shù)據(jù)庫(kù)的編碼格式---------------------show create database test;
            修改數(shù)據(jù)庫(kù)的字符集
               mysql>use mydb
               mysql>alter database mydb character set utf-8;

            4、mysqldump導(dǎo)出mysql備份:注意的是mysqldump在mysql的bin目錄執(zhí)行才可以(windows)語(yǔ)法:
            mysqldump -uroot -p database_name table_name > c:\table.sql;
            導(dǎo)入命令用source,source命令在mysql的提示符下才可以執(zhí)行。
            在mysqldump時(shí)可以指定其字符集,用--default-character-set=gbk
            -d(--no-data),表示只導(dǎo)出表結(jié)構(gòu),
            -t,說(shuō)明只導(dǎo)出表數(shù)據(jù),不到表結(jié)構(gòu);如果不加-d或者-t,默認(rèn)導(dǎo)出表結(jié)構(gòu)和表數(shù)據(jù)


            如果表的主鍵是自動(dòng)增長(zhǎng)型(AUTO_INCREMENT),在插入數(shù)據(jù)時(shí),如果出現(xiàn)異常,表中
            AUTO_INCREMENT的值就會(huì)變一個(gè)很大的值,和你設(shè)置的這個(gè)類型的位數(shù)一樣寬,這些在插入時(shí)不報(bào)錯(cuò),
            只有在讀出時(shí)用才會(huì)發(fā)現(xiàn);由于這些數(shù)據(jù)實(shí)際上是無(wú)效的,所以必須刪掉這些數(shù)據(jù),然后
            修改表結(jié)構(gòu)(用alter)將AUTO_INCREMENT設(shè)置成1,然后就可以正常插入數(shù)據(jù)


            root密碼管理設(shè)置root用戶的密碼mysqladmin -uroot password 'password'。
            修改root用戶的密碼mysqladmin -uroot -p password 'password'。
            數(shù)據(jù)庫(kù),表管理進(jìn)入mysqlmysql -h hostname -uroot -p。

            查看數(shù)據(jù)庫(kù):mysql> show databases;
            進(jìn)入某個(gè)庫(kù):mysql> use location;
            查看表信息:mysql> show tables;
            查看表結(jié)構(gòu):mysql> desc Contact;
            改表名:mysql> rename table Contact to Contact_new。
            刪除庫(kù):           mysql> drop database location。
            刪除表:         mysql> drop table Contact。
            授權(quán)部分建立用戶并授權(quán):  mysql> grant all on location.* to gk1020@'10.1.11.71' identified by 'gk1020'。
            取消授權(quán):        mysql> revoke all on location.* from gk1020@'10.1.11.71'
            刷新權(quán)限:        mysql> flush privileges。
            操作語(yǔ)句查詢:  mysql> select * from Contact。
                                 mysql> select count(*) from Contact。
            修改:              mysql> update Contact set RegTime=‘2008-01-01 00:00:00' where id=1。
                                 mysql> update Contact set RegTime=‘2008-01-01 00:00:00',CID=1 where id=1。
            插入:              mysql> insert into Contact values('',''…)
                                 mysql> insert into Contact(ID,CID,Contact) values('',''…)
            刪除:              mysql> delete from Contact where id=1。
            導(dǎo)出數(shù)據(jù)庫(kù):locationmysqldump -uroot -p location >./location.sql。
            導(dǎo)出某個(gè)表:     mysqldump -uroot -p --database location --table Contact >./contact.sql。
            導(dǎo)出數(shù)據(jù)庫(kù):     location的數(shù)據(jù)結(jié)構(gòu)mysqldump -d -uroot -p location >./location.sql。
            復(fù)制表復(fù)制表:  Contact為Contact_bakmysql> create table Contact_bak as select * from Contact。
            復(fù)制表Contact的結(jié)構(gòu):mysql> create table Contact_bak as select * from Contact where 1=2。
            查看正在執(zhí)行的任務(wù):mysql> show processlist。 

            mysql db_name < data_file.sql

            執(zhí)行完命令之后如果沒(méi)有任何提示,則說(shuō)明我們的數(shù)據(jù)已經(jīng)導(dǎo)入成功了(注意文件格式是date_file.sql, sql.gz在中文下會(huì)出錯(cuò)) 。

            ———————–2008.12.9 update———————-

            有些時(shí)候你可能會(huì)遇到錯(cuò)誤信息,說(shuō)你的權(quán)限不夠,那我們就需要加一些參數(shù)了。

            mysql -hlocalhost -uusername -p db_name < data_file.sql

            這樣回車之后,就會(huì)有輸入密碼的提示,然后輸入你的數(shù)據(jù)庫(kù)密碼就可以導(dǎo)入了。

            參數(shù)-h是指定導(dǎo)入的服務(wù)器,-u是數(shù)據(jù)庫(kù)的用戶名,-p是登錄數(shù)據(jù)庫(kù)的密碼,這三個(gè)參數(shù)后面不用加空格。


            查看表結(jié)構(gòu):
            desc 表名;/*顯示表結(jié)構(gòu)的基本信息,不包括注釋等*/
            show columns from 表名;
            describe 表名;
            show create table 表名;

             

            show full columns from tbName;   /*顯示列的所有詳細(xì)信息包括注釋等*/
            show create database(table) dbname;   /*顯示創(chuàng)建數(shù)據(jù)庫(kù)(表)語(yǔ)句*/

            mysql命令行下查看某個(gè)命令用?,例如
            ? data type    /*查看數(shù)據(jù)支持類型*/
            ? data definition  /*查看mysql自定義操作語(yǔ)句*/
            ? show      /*查看show命令相關(guān)說(shuō)明*/

             

            一個(gè)table有id,name,content字段
            只導(dǎo)出content字段的所有記錄,怎么導(dǎo)?
            注意下面提高的導(dǎo)入和導(dǎo)出語(yǔ)句是在mysql的提示符下進(jìn)行
            導(dǎo)入:select content from table_name into outfile "d:/test.sql";(如果是多個(gè)字段可以用逗號(hào)將其分開(kāi))
            導(dǎo)出:LOAD DATA INFILE 'd:/test.sql' INTO TABLE table_name (content);

             

            select count(*) as total from 表名

             

            SQLyog 連不上MySQL , ERROR NO.1045 簡(jiǎn)單的解決方法 .
            1。停止MySQL服務(wù):運(yùn)行net stop mysql
            linux是/etc/init.d/mysql stop
             

            2。修改MySQL源文件夾中的my.ini,運(yùn)用查找功能找到【mysqld】,在其下加上一行 skip-grant-tables,保存。
            linux下的配置文件是my.cnf,也要加上這一行skip-grand-tables。
             

            3。啟動(dòng)MySQL服務(wù):運(yùn)行net start mysql
            linux下的啟動(dòng)命令是/etc/init.d/mysql start

             

            SELECT   *   FROM   table   LIMIT   5;  顯示前五條
            select     *     from     issu_info     limit     7,6;      
            Limit     7,6       從第8條開(kāi)始取,取6條

            在mysql中利用select語(yǔ)句的一個(gè)特性就可以很方便地實(shí)現(xiàn)查詢結(jié)果的分頁(yè),select語(yǔ)句的語(yǔ)法:
            SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]
            [DISTINCT | DISTINCTROW | ALL]
            select_expression,...
            [INTO OUTFILE 'file_name' export_options]
            [FROM table_references
            [WHERE where_definition]
            [GROUP BY col_name,...]
            [HAVING where_definition]
            [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...]
            [LIMIT [offset,] rows]
            [PROCEDURE procedure_name] ]

            查看版本:進(jìn)入mysql命令行:\s 或status

            安裝mysql錯(cuò)誤:
             MySQL 5.5.14
            – Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
            CMake Error at cmake/readline.cmake:82 (MESSAGE):
            Curses library not found. Please install appropriate package,

            remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
            Call Stack (most recent call first):
            cmake/readline.cmake:126 (FIND_CURSES)
            cmake/readline.cmake:216 (MYSQL_USE_BUNDLED_LIBEDIT)
            CMakeLists.txt:256 (MYSQL_CHECK_READLINE)

            – Configuring incomplete, errors occurred!

            如果你的系統(tǒng)是Ubuntu或Debian:

            apt-cache search ncurses

            apt-get install libncurses5-dev

            需要安裝ncurses-devel包--- apt-get install libncurses5-dev 或者sudo apt-get install libncurses5-dev

            libncurses5-dev is already the newest version.
            0 upgraded, 0 newly installed, 0 to remove and 250 not upgraded.

            提示已經(jīng)是最新的了,不用更新

            linux下的mysql的配置文件:/etc/mysql/my.cnf

            linux下mysql的重啟:service mysql restart
            是否啟用了日志
            mysql>show variables like 'log_bin';

            怎樣知道當(dāng)前的日志文件---具體的路徑在mysql的配置文件中
            mysql> show master status;

            查看從某一段時(shí)間到某一段時(shí)間的日志
             
            mysqlbinlog --start-datetime='2008-01-19 00:00:00' --stop-datetime='2008-01-30 00:00:00'  /var/log/mysql/mysql-bin.000006 > mysqllog1.log


            apt-get install mysql-devel命令提示如下”
            Reading package lists... Done
            Building dependency tree
            Reading state information... Done
            E: Unable to locate package mysql-dev
            解決方法:搜索aptitude search mysql | grep devel
            p   liblua5.1-sql-mysql-dev         - luasql development files for the Lua langu
            p   libmysql++-dev                  - MySQL C++ library bindings (development)
            i   libmysqlclient-dev              - MySQL database development files
            p   libmysqlcppconn-dev             - MySQL Connector for C++ (development files
            p   libmysqld-dev                   - MySQL embedded database development files
            p   libmysqld-pic                   - MySQL database development files
            然后apt-get install libmysqlclient-dev即可
            在g++時(shí)將-lmysqlclient寫(xiě)入到Makefile文件中就可以了。

             

            mysql---1130錯(cuò)誤解決辦法:原因是不允許遠(yuǎn)程連接到這個(gè)數(shù)據(jù)庫(kù)
            在localhost的那臺(tái)電腦,登入mysql后,更改 “mysql” 數(shù)據(jù)庫(kù)里的 “user” 表里的 “host” 項(xiàng),從”localhost”改稱”%”,重啟mysql服務(wù)-----windows下

            mysql -u root -p

            mysql>use mysql;

            mysql>update user set host = ‘%’ where user =’root’;

            mysql>flush privileges;

            mysql>select ‘host’,'user’ from user where user=’root’;

            上面這種方法雖然解決遠(yuǎn)程訪問(wèn)的問(wèn)題,卻使得mysql主機(jī)的用戶無(wú)法登錄,所以下面的方法比較靠譜:

            授權(quán)法。例如,你想myuser使用mypassword從任何主機(jī)連接到mysql服務(wù)器的話。

            GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

            如果你想允許用戶myuser從ip為192.168.1.3的主機(jī)連接到mysql服務(wù)器,并使用mypassword作為密碼

            GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'192.168.1.3′ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;


            使用mysql 的use db_name的時(shí)候提示

            Reading table information for completion of table and column names. 
            You can turn off this feature to get a quicker startup with -A
            原因是由于數(shù)據(jù)庫(kù)太大,即數(shù)據(jù)庫(kù)中表非常多,所以如果預(yù)讀數(shù)據(jù)庫(kù)信息,將非常慢,所以就卡住了,如果數(shù)據(jù)庫(kù)中表非常少,將不會(huì)出現(xiàn)問(wèn)題。
            改進(jìn)方法:mysql -u name -p -A(表示不用預(yù)讀數(shù)據(jù)庫(kù)信息)

             mysql命令,加上\G:表示要換行顯示

            設(shè)置分頁(yè)顯示到屏幕:mysql> pager more或者pager less;

            pager后面能跟上grep(過(guò)濾),awkwc等常見(jiàn)的Unix bash shell
            pager實(shí)際上等于將它設(shè)置以后的所有mysql操作命令的輸出通過(guò)pager設(shè)置命令執(zhí)行,類似于管道符的作用
            例如:當(dāng)處理大量數(shù)據(jù)時(shí),不想顯示查詢的結(jié)果,而只需知道查詢花費(fèi)的時(shí)間。
            mysql> pager cat /dev/null;        //實(shí)際上等于后面執(zhí)行的命令|cat /dev/null,這樣顯示結(jié)果就只是執(zhí)行時(shí)間了
            PAGER set to 'cat /dev/null'
            例如:有大量連接,用show processlist看不方便,想看有多少Sleep狀態(tài),則可以用pager。
            mysql> pager grep Sleep |wc -l;    
            PAGER set to 'grep Sleep |wc -l'
            mysql> show processlist; //類似于show processlist結(jié)果再通過(guò)grep Sleep |wc -l顯示;下面表示一共有2個(gè)連接,其中0個(gè)Sleep狀態(tài)的連接。
            0

            mysql> pager cat>/home/pw/osq.txt;將輸出發(fā)送到文件中
            less說(shuō)明:
            退出:“:q”
            下一頁(yè):“F”
            上一頁(yè):“B”
            tee說(shuō)明
            mysql>tee filename
            可以將之后在mysql的所有輸入輸出操作記錄到filename中。


            nopager命令:取消pager設(shè)置,恢復(fù)之前的輸出狀態(tài)。(如果不設(shè)置nopager,那么只能通過(guò)重啟mysql服務(wù)才能恢復(fù)了)

            mysql下實(shí)行系統(tǒng)命令:mysql>system clear;(執(zhí)行系統(tǒng)下的清屏命令)
            MySQL不能啟動(dòng) mysql-bin.index' not found (Errcode: 13)
            原來(lái)是因?yàn)槲募A權(quán)限的問(wèn)題。剛才新建的目錄binlogs是在root下面的。
            [root@XXXX mysql]# pwd
            /var/lib/mysql
            [root@XXXX mysql]# chown -R mysql:mysql binlogs
            [root@XXXX mysql]#
            [root@XXXX mysql]# /etc/init.d/mysql restart
            MySQL manager or server PID file could not be found!       [FAILED]
            Starting MySQL.                                            [  OK  ]
            SQL Server 多表更新方法(語(yǔ)法)
            //----------------------------------
            SQL Server語(yǔ)法:UPDATE { table_name WITH ( < table_hint_limited > [ ...n ] ) |
            view_name | rowset_function_limited } SET { column_name = { expression | DEFAULT
            | NULL } | @variable = expression | @variable = column = expression } [ ,...n ]
            { { [ FROM { < table_source > } [ ,...n ] ] [ WHERE < search_condition > ] } | [
            WHERE CURRENT OF { { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } [
            OPTION ( < query_hint > [ ,...n ] ) ]
            MySql跨表更新 多表update sql語(yǔ)句  將select出來(lái)的部分?jǐn)?shù)據(jù)update到另一個(gè)表里面
            update behavior_redman_count a
            inner join(
             select memberId,count(*) as followingCount from behavior_follow where type = 10
             and isDelete=0 group by memberId
            )b set a.followingCount =b.followingCount where a.redmanId = b.memberId;
            其他:
            //有條件的更新
            UPDATE t_player_baseinfo SET SID=(SELECT id from sg_gamedb.t_gameserver where id>0 LIMIT 1);
            //兩個(gè)表互聯(lián)更新(同時(shí)更新兩個(gè)表 如果兩個(gè)表的nick_name自動(dòng)相同,則分別更新nick_name)
            UPDATE sg_gamedb1.t_player_baseinfo a INNER JOIN sg_gamedb2.t_player_baseinfo b on a.nick_name = b.nick_name set
            a.nick_name = CONCAT('[s',a.SID,']',a.nick_name),b.nick_name = CONCAT('[s',b.SID,']',b.nick_name);

            posted on 2011-10-16 09:52 Benjamin 閱讀(1116) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)庫(kù)

            午夜精品久久影院蜜桃| 伊人热热久久原色播放www| 久久伊人五月丁香狠狠色| 国内精品久久久久久麻豆 | 99热都是精品久久久久久| 久久久久人妻一区二区三区vr| 日产精品久久久久久久| 亚洲国产视频久久| 久久午夜免费视频| 国产精品久久久久久久久久影院| 伊人色综合九久久天天蜜桃| 亚洲性久久久影院| 国产69精品久久久久APP下载| 国内精品伊人久久久久妇| 久久综合久久综合亚洲| 青青草原综合久久大伊人| 久久久久久久97| 人妻无码久久一区二区三区免费| 久久精品人人做人人爽97| 777米奇久久最新地址| 91精品日韩人妻无码久久不卡 | 99久久免费国产精品热| 成人国内精品久久久久一区 | 国产精品欧美久久久天天影视| 丁香五月网久久综合| 青青青国产精品国产精品久久久久| 久久久久久久尹人综合网亚洲| 成人国内精品久久久久影院VR| 国内精品久久久久久久久| 一级做a爰片久久毛片免费陪| 国产成人精品综合久久久| 久久精品夜夜夜夜夜久久| 国内精品久久久久久久coent | 亚洲综合伊人久久综合| 美女写真久久影院| 一本一道久久a久久精品综合 | 亚洲成色999久久网站| 综合久久给合久久狠狠狠97色| 新狼窝色AV性久久久久久| 午夜不卡888久久| 久久精品人人做人人爽电影|