如何利用cPanel建立mysql資料庫?

cpanel_wp

cpanel控制台的直覺式圖形化操作,可以讓不懂linux的使用者,快速的進行網站空間的管理,以下我們更進一步的說明,在cpanel裡建立mysql的db name, db user, db password的方式。

繼續閱讀 如何利用cPanel建立mysql資料庫?

mysql指令速記

我實在是覺得透過 cpanel來增新mysql user有點缺乏效率。
還是不用指令不爽呀… ( 以下指令需要以root身分登入mysql )

(1) 新增使用者
create user ‘使用者名’@’localhost’ identified by ‘密碼’;

(2) 新增資料庫
create database 資料庫名;

(3) 使用資料庫
use 資料庫名;

(4) 設定權限  ( 對某個資料庫的所有tables 設定給某個user )
grant ALL PRIVILEGES on 資料庫名.* to ‘使用者名’@’localhost’;

(5) 砍掉資料庫
drop database 資料庫名;

(6) 砍掉使用者
drop user ‘使用者名’@’localhost’;

mysql export import

如果要備分或是還原資料庫,遇到資料庫超過一定的大小,例如20MB之後,許多php版本的自動匯出/匯入程式都會出問題。因為php程式會受到 max_upload_size, max_execution_time等參數的限制。甚至連phpmyadmin也會有不管用的時候。

遇到這種時候,如果追求速度(不計難度),最有效率的方法,自然是透過ssh登入,直接下mysqldump指令來解決問題。

匯出: mysqldump -u 使用者名稱 -p –opt  -h localhost  資料庫名稱 > 檔案名.sql
匯入: mysql -u 使用者名稱 -p 資料庫名稱 < 檔案名.sql

然而,上述的方法,牽扯到使用ssh。這對很多只會用ftp的使用者是一大門檻。當然,也是有不需要ssh的解法。
(*) 匯出   backup your mysql database using php 

程式在這邊,使用方法:
(1) 修改這一行
backup_tables(‘localhost’,”使用者名”,”密碼”,”資料庫名”);
(2) 透過網頁來啟動這個php檔。
(3) 執行完後,這個php檔會自動生成一個mysql database的匯出檔。再用ftp下載即可。

這個程式看起來還滿複雜的,有些人心裡應該會有疑惑,明明php也可以直接呼叫 linux的指令吧? php可以做這件事,但是,在虛擬主機的環境中,為了安全性,這個直接呼叫 linux指令功能一向是被關閉的。所以才需要寫得這麼麻煩。

(*) 匯入  BigDump

使用方法如下:
(1) 在bigdump的官網上,下載bigdump.php這個檔案的壓縮檔。並且解壓縮。
(2) 修改bigdump.php的內容

$db_server = '主機名稱';(一般為localhost)
$db_name = '資料庫名稱';
$db_username = '使用者帳號';
>$db_password = '使用者密碼'

(3)  修改bigdump.php的內容

$filename = '檔案名稱.sql';
$ajax = true;
$linespersession = 3000; (設定每次還原幾筆資料)
$delaypersession = 5000; (每次間隔休息時間,設定5000為休息5秒鐘。)

(4) 將「bigdump.php」與「檔案名稱.sql」放入同一個資料夾,並上傳至伺服器。
最後打開瀏覽器輸入bigdump.php 所在網址,如: http://domain.tw/dump/bigdump.php

(5)當藍bar全滿後,出現「Congratulations: End of file reached, assuming OK」的訊息後,表示資料庫匯入完成。

如何在同一台機器執行兩個mysql資料庫的程式?

這個需求是這樣子產生的:某一個客戶需要客製化my.cnf檔。但是my.cnf檔的設定又會一次套用到所有的客戶上。

我查詢的關鍵字是 running multiple mysql instances on one server

參考資料 ( 這個參考資料只能當參考,我實測之後,有許多細節不同。)

修改的步驟:
(1) mkdir /var/lib/mysql2
chown mysql.mysql /var/lib/mysql2

(2) cp /etc/my.cnf /etc/my2.cnf
修改/etc/my2.cnf 的內容:
datadir=/var/lib/mysql2
port=3307

(3) cp /etc/init.d/mysql /etc/init.d/mysql2
修改/etc/init.d/mysql2 的內容:

  • 有mysqld_safe的這一行必須特別修改:       $bindir/mysqld_safe –datadir=”$datadir” –socket=”/var/lib/mysql2/mysql.sock” –pid-file=”$mysqld_pid_file_path” –port=”3307″ $other_args >/dev/null 2>&1 &
  • 修改所有的my.cnf 這個字串成為 my2.cnf
  • 修改 datadir=/var/lib/mysql 為 datadir=/var/lib/mysql2
  • 修改 lock_file_path=”$lockdir/mysql” 為 lock_file_path=”$lockdir/mysql2″

(4) chkconfig –add mysql2

(5) 理論上,要用mysql_install_db的指令來安裝新的default mysql database
mysql_install_db –datadir=/var/lib/mysql2 –defaults-file=/etc/my2.cnf –user=mysql
但是,實際上,我這樣子做之後,還是有問題,所以我後來沒使用這個指令。我把/var/lib/mysql2 這個資料夾清空之後,

cp -a /var/lib/mysql/performance_schema /var/lib/mysql2
cp -a /var/lib/mysql/mysql /var/lib/mysql2

(6) service mysql2 start

(7) mysql -h127.0.0.1 -P3307
如果可以順利登入的話,
mysql> show databases;

理論上,如果是只出現
mysql
information_schema
performance_schema

三個資料庫的話,這樣子就代表設置成功了!

mysql忘記root password

遇到這種不幸的情況,最簡單的方式,當然是使用WHM的功能,就可以簡單地重新設定。

然而,有時候,因為成本的因素,我們把cpanel/WHM的成本省下來的時候,就得用比較複雜的技巧來處理這個問題:

1  service mysql stop

2 修改 /etc/init.d/mysql
找到 mysqld_safe 這一行,加上 –skip-grant-tables

3 service mysql start

4  現在可以不用密碼登入了。
mysql  -u root
use mysql;
update user set password=password(‘yournewpasswordhere’) where user=’root’;
flush privileges;
exit;

5 service mysql restart

如何在centOS上,透過yum安裝基本的web server

有的客戶因為要跑相對比較吃硬碟I/O數的遊戲,喜歡不裝cpanel。但是不裝cpanel的話,剛拿到的centOS是連完整的web server環境都沒有的。本文就是來講解,如何在一台乾淨的centOS上,透過yum安裝基本的web server

(*) 安裝web server
1 for php
yum install php

2 for ioncube loader ( ioncube loader是一個跟加密的php source code有關的模組,不灌這個的話,如果要執行的插件是有加密的php source code,就跑不動了。)
wget -q -O – http://www.atomicorp.com/installers/atomic |sh
yum install php-ioncube-loader

3 for mysql
yum install mysql mysql-server php-mysql
chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start
修改mysql的 password
/usr/bin/mysqladmin -u root password ‘你要設定給mysql root的密碼

4 for httpd
yum install httpd
service httpd restart