顯示具有 mysql 標籤的文章。 顯示所有文章
顯示具有 mysql 標籤的文章。 顯示所有文章

2012年1月28日 星期六

mysql gui

除了 mysql 自己的 gui tool (mysql-query-browser, mysql-admin) 外, 還有這個: navicat。不過 navicat 不是 opensource 軟體。目前 (20120128) 似乎已經不提供免費的版本了。

2011年11月16日 星期三

mysql 基本指令用法

mysql -u root -p
mysql -h 1.2.3.4 -u username -p
****** (輸入密碼)

如果架在 amazon ec2 上連不到, 請參考:
http://stackoverflow.com/questions/9766014/connect-to-mysql-on-amazon-ec2-from-a-remote-server
很有可能是 Amazon Security Group 的設定沒設好 mysql rule (3306 port)

顯示目前所有的 database name
SHOW DATABASES;

建立一個 database
CREATE DATABASE my_db;

刪除一個 database
drop database my_db;

使用 my_db 這個 database
use my_db;

在 database 建立 tb_1 這個 table (id 和 time 會由 mysql 自動產生)
CREATE TABLE IF NOT EXISTS tb_1(id INT PRIMARY KEY AUTO_INCREMENT, time TIMESTAMP, name VARCHAR(4));

列出 table
show tables;

刪除 tb_1 這個 table
drop table tb_1;

刪除某一列的資料
delete from table_name where file_name='avalue';

ref: http://www.cnblogs.com/Arlen/archive/2008/01/25/1053247.html

mysql sql 修改表名 建立外键 修改列名 删除列

--重命名表

rename table t_softwareport to software_port;

--建立外键
alter table software_port add constraint fk_software_port_softwareprocessid foreign key (softwareprocessid)
references software_process (id) on delete restrict on update restrict;

--删除列
alter table software_type
drop column upid,
drop column orderid;

--修改列名
alter table software_process change  software_id  softwareid  int(11) not null;

ref:

2011年8月24日 星期三

MySQL 設定 UTF-8 處理中文資料

為了搞定中文, 用 utf8 來存資料是最保險的了。

http://www.csie.mcu.edu.tw/~skyman/docs/utf8_in_mysql.php

編輯 /etc/my.cnf,請在 "[mysqld]" 字樣的下一行加入下面設定!!
default-character-set=utf8
init_connect='SET NAMES utf8'

http://hi.baidu.com/qhh_2008/blog/item/c3bb9942fd2e820973f05dca.html

修改/etc/mysql/my.cnf
sudo gedit /etc/mysql/my.cnf

在my.cnf文件中的[client]段和 [mysqld]段加上以下两行内容:
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8

我只有設定, 其他的部份都沒設定。(in ubuntu 11.04)
[mysqld]
default-character-set=utf8


而 mysql client 程式能不能顯示 utf8 中文, 那是另外一件事。

看到下面的 table, 也猜到編碼相關問題了。

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql>

中文處理很麻煩, 簡單來說, server 端用 utf8 處理中文, client 自然也要用 utf8 處理, 中文資料才能正常顯示, 像上述 table 列的

character_set_client | latin1

自然 client 會以 latin1 顯示中文資料, 中文當然會變成亂碼。

mysql 的 client console
打上
SET NAMES utf8;
就可以看到中文, 當然該終端機也要能顯示 utf8 中文的能力 (別擔心, 只要你的口味不是太獨特, 應該都沒問題, 若你是另有品味的人士, 相信這問題也難不倒你)。

2011年8月22日 星期一

build database drvier (mysql/postgresql) plugin in linux environment - qt4

mysql

./configure -plugin-sql-mysql -plugin-sql-db2 -plugin-sql-ibase
-plugin-sql-mysql -plugin-sql-oci -plugin-sql-odbc -plugin-sql-psql
-plugin-sql-sqlite -plugin-sql-sqlite2 -plugin-sql-sqlite_symbian
-plugin-sql-tds -no-qt3support

If got odbc error message:
ODBC support cannot be enabled due to functionality tests!
Turn on verbose messaging (-v) to ./configure to see the final report.
If you believe this message is in error you may use the continue

這不一定是 odbc 出問題, 在我的系統上是 db2 出了問題, 也會產生這 message, 加上 -v 就清楚了, -v 會列出更多的訊息,可以用來判斷是哪裡出問題。不過 windows 版本似乎要到開始 compile 才會發生問題, 而不是在 configure 階段就秀出問題。

./configure -plugin-sql-mysql -plugin-sql-db2 -plugin-sql-ibase
-plugin-sql-mysql -plugin-sql-oci -plugin-sql-odbc -plugin-sql-psql
-plugin-sql-sqlite -plugin-sql-sqlite2 -plugin-sql-sqlite_symbian
-plugin-sql-tds -no-qt3support -v

我最後的 command:
./configure -plugin-sql-mysql -plugin-sql-odbc -plugin-sql-sqlite
-no-qt3support -v

所以 db2 沒辦法通過 configure 測試是很正常的, 我的系統根本沒有安裝 db2 開發工具, 怎麼有辦法編譯出 db2 的 sql plugin。

odbc support 要安裝:
apt-get install odbcinst odbcinst1debian2 unixodbc unixodbc-dev

所以記得在編譯前先安裝好 mysql 開發相關檔案。
apt-get install mysql-server-core-5.1 libmysqlclient-dev 


最簡單的方式是使用套件商幫我們 build 好的 binary:
apt-get install libqt4-sql-odbc

輕鬆搞定。


不過身為程式開發人員, 把這些事情搞清楚是很重要的。

postgresql

postgresql 也是一樣的行為。

安裝 postgresql 開發套件:
root@ubuntu:/home/descent# apt-get install postgresql-8.4 postgresql-server-dev-8.4
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:

comerr-dev krb5-multidev libgssrpc4 libkadm5clnt-mit7 libkadm5srv-mit7 
libkdb5-4 libkrb5-dev libpq-dev libpq5 libssl-dev postgresql-client-8.4 
postgresql-client-common postgresql-common 
Suggested packages: 
krb5-doc krb5-user postgresql-doc-8.4 oidentd ident-server 
The following NEW packages will be installed: 
comerr-dev krb5-multidev libgssrpc4 libkadm5clnt-mit7 libkadm5srv-mit7 
libkdb5-4 libkrb5-dev libpq-dev libpq5 libssl-dev postgresql-8.4 
postgresql-client-8.4 postgresql-client-common postgresql-common 
postgresql-server-dev-8.4

mysql only localhost - 開啟 mysql 遠端存取功能

要設定兩個地方:

in ubuntu
vi /etc/mysql/my.cnf
bind-address = 127.0.0.1

註解
bind-address = 127.0.0.1
變成

# bind-address = 127.0.0.1

再來設定使用者連線 (使用 mysql-admin GUI tool), User Administration 這功能似乎只能用 localhost 登入時才用使用, 所以先用 localhost (127.0.0.1) 登入, 再選取此功能。
User Administration: 新增新使用者或是將 root 加入 any host (在 root 的地方按右鍵)。