Time of Update: 2017-01-19
cat /dev/urandom | LC_ALL=C tr -dc "[:alnum:]" | fold -w 10 |head -10Si1N9kUyuZddzsRXFgxAcaDRBRT4PxbuGk6LkX4dN5Xod1TOyr1645cBxAjlKRjwJR2TxunhQedXagL9RraDEZgfhYQxCurm5eZF參數說明:如果需要特別複雜的密碼可以試一下:cat /dev/urandom | LC_ALL=C tr -dc "[:graph:]" | fold -w 10
Time of Update: 2017-01-19
實際線上的情境比較複雜,當時涉及了truncate, delete 兩個操作,經確認丟資料差不多7萬多行,等停下來時,差不多又有共計1萬多行資料寫入。 這裡為了簡單說明,只拿弄一個簡單的業務情境舉例。測試環境: Percona-Server-5.6.16日誌格式: mixed 沒起用gtid表結構如下:CREATE TABLE `tb_wubx` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(32) DEFAULT
Time of Update: 2017-01-19
MySQL在5.1引入了一個rename database操作,但在MySQL5.1.23後又不支援這個命令。可以說是一個實驗性的功能,沒有在生產中支援過(mysql-5.1 release在mysql-5.1.30),那麼生產中我們有時為了追求完美需要改一下庫名。怎麼操作呢?這裡提供一個變通的方法。1. 建立出新庫名:mysql>create database db_v2; mysql>create database
Time of Update: 2017-01-19
今天接到一個朋友電話說是覺的資料庫被別人更改了,出現資料不對的問題 。經過很久的排查是資料類型溢出了(發生問題的版本是MySQL 5.1)。後來通過給朋友那邊把MySQL 5.1升級到MySQL 5.5去解決這個問題。 這也讓我有興趣去瞭解一下MySQL不同版本資料類型溢出的處理機制。先看一下MySQL支援的整型數及大小,儲存空間:另外請記著mysql的資料處理會轉成bigint處理,所以這裡就用bigint幾個測試:SELECTCAST(0ASUNSIGNED)-1; SELECT922337
Time of Update: 2017-01-19
今天幫同事處理一個SQL(簡化過後的)執行報錯:mysql> select date_format('2013-11-19','Y-m-d') > timediff('2013-11-19', '2013-11-20'); ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,COERCIBLE) and (latin1_swedish_ci,NUMERIC) for
Time of Update: 2017-01-19
眾所周知,在MySQL中,如果直接 ORDER BY RAND() 的話,效率非常差,因為會多次執行。事實上,如果等值查詢也是用 RAND() 的話也如此,我們先來看看下面這幾個SQL的不同執行計畫和執行耗時。首先,看下建表DDL,這是一個沒有顯式自增主鍵的InnoDB表:[yejr@imysql]> show create table t_innodb_random\G*************************** 1. row *************************
Time of Update: 2017-01-19
通常,我們會採用ORDER BY LIMIT start, offset 的方式來進行分頁查詢。例如下面這個SQL:SELECT * FROM `t1` WHERE ftype=1 ORDER BY id DESC LIMIT 100, 10;或者像下面這個不帶任何條件的分頁SQL:SELECT * FROM `t1` ORDER BY id DESC LIMIT 100, 10;一般而言,分頁SQL的耗時隨著 start
Time of Update: 2017-01-19
方法一 通過information_schema.processlist表中的串連資訊產生需要處理掉的MySQL串連的語句臨時檔案,然後執行臨時檔案中產生的指令。複製代碼 代碼如下:mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root';+------------------------+| concat('KILL ',id,';') |+-----------
Time of Update: 2017-01-19
前幾天幫同事解決一個案例,在主從複製環境下,從庫上的MySQL版本號碼是5.5.5,遇到下面的錯誤:#其他非相關資訊我都隱藏掉了 [(yejr@imysql.com)]> show slave status \G; Slave_IO_Running: Yes Slave_SQL_Running: No Last_Errno: 1064 Last_Error: Error 'You have an error in your SQL syntax; check the manual
Time of Update: 2017-01-19
本次,我們來看看索引、提交頻率對InnoDB表寫入速度的影響,瞭解有哪些需要注意的。先直接說幾個結論吧:1、關於索引對寫入速度的影響:a、如果有自增列做主鍵,相對完全沒索引的情況,寫入速度約提升 3.11%;b、如果有自增列做主鍵,並且二級索引,相對完全沒索引的情況,寫入速度約降低
Time of Update: 2017-01-19
在用mysql時(show tables),有時候需要查看錶和欄位的相關資訊(表與某欄位是否存在等.)~~而PHP提供了這樣的相關函數,如:mysql_list_dbs(),mysql_list_fields(),但mysql_list_fields() 函數等已淘汰,所以要用show...這個SQL指令來查尋。SHOW 指令(‘[..]'裡的可選)#顯示mysql中所有資料庫的名稱show databases;#顯示mysql中的相關表show tables [ from
Time of Update: 2017-01-19
複製代碼 代碼如下: SELECT a.`TABLE_SCHEMA` AS DB_NAME , a.`TABLE_NAME` , a.`TABLE_ROWS` ,a.`ENGINE` -- , a.* FROM information_schema.`TABLES` a LEFT JOIN information_schema.`TABLE_CONSTRAINTS` b ON a.`TABLE_NAME` = b.`TABLE_NAME` AND a.`TABLE_SCHEMA` =
Time of Update: 2017-01-19
-- mysql ssl 產生秘鑰 1 check ssl是否已經開啟 mysql> show variables like '%ssl%'; +---------------+----------+ | Variable_name | Value | +---------------+----------+ | have_openssl | DISABLED | | have_ssl | DISABLED | | ssl_ca | | | ssl_capath | | |
Time of Update: 2017-01-19
SHOW STATUS 直接在命令列下登陸MySQL運行SHOW STATUS;查詢語句,詳細如下圖 同樣的語句還有SHOW VARIABLES;,SHOW STATUS是查看MySQL運行情況,和上面那種通過pma查看到的資訊基本類似。 SHOW VARIABLES SHOW VARIABLES是查看MySQL的配置參數,還可以使用類似SHOW VARIABLES LIKE 'Key%' SHOW PROCESSLIST SHOW
Time of Update: 2017-01-19
最近開發項目中又重新拿起了Mysql,在搭建環境的時候遇到了中文亂碼問題。下面我把我的解決方式跟大家分享一下 1、通過show VARIABLES like 'character_%'; 顯示出來所有的設定項目。把其中的非UTF8的編碼都設定成utf8 設定方式如 : set character_set_server=utf8; 2、去mysql 安裝目錄下找到my.ini檔案。設定裡面的latin1為utf8
Time of Update: 2017-01-19
串連:mysql -h主機地址 -u使用者名稱 -p使用者密碼 (注:u與root可以不用加空格,其它也一樣)斷開:exit (斷行符號)建立授權:grant select on 資料庫.* to 使用者名稱@登入主機 identified by \"密碼\"修改密碼:mysqladmin -u使用者名稱 -p舊密碼 password 新密碼刪除授權: revoke select,insert,update,delete om *.*
Time of Update: 2017-01-19
你能用的資料庫引擎取決於mysql在安裝的時候是如何被編譯的。要添加一個新的引擎,就必須重新編譯MYSQL。在預設情況下,MYSQL支援三個引擎:ISAM、MYISAM和HEAP。另外兩種類型INNODB和BERKLEY(BDB),也常常可以使用。
Time of Update: 2017-01-19
一、啟動與退出1、進入MySQL:啟動MySQL Command Line Client(MySQL的DOS介面),直接輸入安裝時的密碼即可。此時的提示符是:mysql>或開啟終端,輸入SQL語句:mysql –uroot –p1232、退出MySQL:quit或exit二、庫操作1、建立資料庫命令:create database <資料庫名>例如:建立一個名為xhkdb的資料庫mysql> create database xhkdb;2、顯示所有的資料庫命令:show
Time of Update: 2017-01-19
MySQL有很多種儲存引擎,針對不同的應用,可以為每張表選擇合適的儲存引擎,這樣有助於提升MySQL效能。建立新聞表news:複製代碼 代碼如下:CREATE TABLE `sandbox`.`news` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(45) NULL
Time of Update: 2017-01-19
#/bin/sh #檢測mysql server是否正常提供服務 mysqladmin -u sky -ppwd -h localhost ping #擷取mysql當前的幾個狀態值 mysqladmin -u sky -ppwd -h localhost status #擷取資料庫當前的串連資訊 mysqladmin -u sky -ppwd -h localhost processlist #擷取當前資料庫的串連數 mysql -u root -p123456 -BNe "select