Archive

文章標籤 ‘mysql’

mysql常用的維護指令

2013年8月5日 尚無評論

當你慣用了GUI的管理介面之後,你指令會忘的很快

以前在處理Mysql時多半都使用GUI管理介面,所以一些指令都忘的差不多了

在此記下來,以後如還有相同的任務,就可以快點進行啦!!

啟動mysql (指定參數檔)

mysqld defaults-file=c:\mysql\my.ini

 

停止mysql,有很多方式可以停,在此介紹幾個算是正規的停法

mysqladmin -u root -p shutdown 或是 mysqld stop

 

安裝成Windows 服務

mysqld install mysql defaults-file=c:\mysql\my.ini 

 

 

移除服務如下:

mysqld remove

 

建立使用者(開放給本機的john 或是不限任何主機的may,連線密碼為123456)

mysql>CREATE USER 'john'@'localhost' IDENTIFIED BY '123456';
mysql>CREATE USER 'may'@'%' IDENTIFIED BY '123456';

 

權限設定(YOURDB內所有表單的權限開放給本機的root,連線密碼為123456)

mysql>grant all on YOURDB.* to 'root'@'localhost' identified by '123456';

 

更改密碼

mysqladmin -u root password '12345'

 

 

也可以用這樣的方式更改密碼

mysql>set password for USER = password('YOUR NEW PASSWORD'); //更改user密碼

 

建立資料庫並指定編碼

mysql>CREATE DATABASE `YOURDB` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

 

顯示目前有多少資料庫

mysql>show databases;

 

顯示目前資料庫有多少表格

mysql>SHOW TABLES;

 

切換使用中的資料庫

mysql>USE `YOURDB`;

 

設定Client 溝通connection的編碼語系

set NAMEs UTF8;

 

還原資料庫

mysql YOURDB -u root -p < backup-db.sql

 

 

或是在console之中

mysql>SOURCE c:/backup-db.sql

 

備份資料庫

mysqldump -u root -p -F –opt YOURDB > backup-db.sql
Categories: Database, 系統設定 Tags:

Mysql INSERT … SELECT 太舊版不支援

2012年9月12日 尚無評論

Insert Select 的語法,不太常用,但要使用時沒有作用就覺得很討厭,在一個蠻舊版的Mysql上,臨時有這個需求才發現顯示了原來這個語法在舊版本Mysql是不支援的。
在以下的連結有人就有說到在4.1.6後的版本就都可以用了….可惡!! 我的版本是4.0.16…無言!

http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

This refers to mysql 4.1.6 and later versions for sure.

既然不能用,只好用土法練鋼法,當要新增大量資料時,可以使用EXCEL 來進行產生SQL檔(如果你有一些mysql 工具就不用這麼克難了,我是在執行的環境沒有才出此下策),怎麼產生呢?
利用excel 寫好insert 指令,把各值放到其它的欄位,這樣就可以整行COPY 過來產生SQL 語法,如下圖:

這邊要記住,在excel 的欄位如果字首要有單引號出現,就要輸入兩個單引號才會出現
好,當完成後就可以COPY 貼到文字檔,這時還要做一個動作,就是置換TAB
因為COPY 過來的insert 指令各欄位之間會用TAB符號區隔,這樣是不合用的
所以再把TAB符號換成空字串就完工了!!

備註: 9/20 update 
後來經測試,好像4.0.16的版本是可以支援insert select 的,不過能支援的語法比較單純,就是只能
insert into newtable select * from oldtable;
不能指定欄位
Categories: Database Tags:

如何於MYSQL下SQL指令資料從另一個TABLE更新

2011年5月4日 尚無評論

如何下SQL指令從另一個TABLE取資料更新要更新的TABLE呢?
以下介紹三種指令都可以達到:

  1. 標準的ANSI-SQL 用INNER JOIN的作法
    UPDATE target_table INNER JOIN source_table SET title=source_table.title WHERE target_table. id=source_table.id;
  2. 採用舊版的JOIN 方式(這是不正統的~但小弟蠻常用的)
    UPDATE target_table, source_table SET title=source_table.title  WHERE target_table. id=source_table.id;
  3. 使用sub query 的方式,也是可以做到哦!
    UPDATE target_tableSET title = (  SELECT title  FROM source_table WHERE target_table. id=source_table.id );

雖然很簡單,不過還是寫出來分享給大家~^^

Categories: Database, 程式開發 Tags: ,

MySQL+innodb 準備要收費了

2010年11月14日 尚無評論

Mysql 被Sun買後不久,Sun也被Orcale買了,真不知~Oracle買Sun是為了Sun還是Mysql呀!!
前些日子看到Oracle還跳出來說會持續支援Mysql開放源始碼,但商人就是商人,看來還是想要找地方生錢出來才行

最近看到新聞,提及Mysql + Innodb 是要付費的,看來不只斷Mysql手腳而已,都快砍對半了,雖然還是有高效能的MyISAM可以使用,但沒支援交易模式,只能拿出來在小系統裡使用,看來要找個時間找一下配套方案才行。

目前比較合適的,可以算是無痛轉移的應該是可以移到MariaDB 或是Percona Server,可以改用xtraDB,看相關報導似乎xtraDB的效能有贏過Innodb呢~先記下來,等有空再玩玩。

如想知道更多資訊,請看以下連結:

Categories: 新知 Tags:

Cannot proceed because system tables used by Event Scheduler

2010年11月11日 尚無評論

最近在重裝MYSQL資料庫,用懶人法將舊的資料庫實體檔案搬過來用,重啟時發現雖然可以啟動但好像無法使用
並出現

Cannot proceed because system tables used by Event Scheduler were found damaged at server start

後來上網查,得知會有這原因是因為現在的版本有做了相容性的偵測,所以要下指令進行升級才行
(怎麼5.1.31=>5.1.42就不能用啦@@),指令如下:

mysql_upgrade – u root -p

執行後記得要重新啟動MYSQL才能正常使用
後記,雖然有相容升級的修正程式,但有發現有參數(ex:default-time-zone= “UTC”)是用了舊版的資料庫是無法使用的,一用了就會無法啟動,所以還是不要偷吃步的好,還是先dump出來再import進去尤佳

參考資料:http://bbs.linuxtone.org/thread-5512-1-1.html

Categories: Database Tags:
分頁: 1 2 3 下一頁