配資料庫
如何在linux下安裝mysql資料庫並配置
關於本文
本文將以MySQL 5.0.51為例,以CentOS 5為平台,講述MySQL資料庫的安裝和設置。
2. 關於MySQL
MySQL是最流行的開源SQL資料庫管理系統,它由MySQL AB開發、發布和支持。MySQL AB是一家由MySQL開發人員創建的商業公司,它是一家使用了一種成功的商業模式來結合開源價值和方法論的第二代開源公司。MySQL是MySQL AB的注冊商標。
MySQL是一個快速的、多線程、多用戶和健壯的SQL資料庫伺服器。MySQL伺服器支持關鍵任務、重負載生產系統的使用,也可以將它嵌入到一個大配置(mass-deployed)的軟體中去。
MySQL的官方發音是「My Ess Que Ell」,而不是「My sequel」。但是你也可以使用「My sequel」和其他的方言。
MySQL網站(http://www.mysql.com)提供了關於MySQL和MySQL AB的最新的消息。
MySQL具有如下特點或特性:
MySQL是一個資料庫管理系統;
MySQL是一個關系資料庫管理系統;
MySQL是開源的;
MySQL伺服器是一個快的、可靠的和易於使用的資料庫伺服器;
MySQL伺服器工作在客戶/伺服器或嵌入系統中;
有大量的MySQL軟體可以使用。
3. MySQL的安裝
MySQL有兩種安裝方式:源碼包安裝和二進制包安裝。這兩種方式各有特色:二位制包安裝不需編譯,針對不同的平台有經過優化編譯的不同的二進制文件以及包格式,安裝簡單方便;源碼包則必須先配置編譯再安裝,可以根據你所用的主機環境進行優化,選擇最佳的配置值,安裝定製更靈活。下面分別介紹這兩種安裝方式。
3.1 源碼包方式安裝
3.1.1 在linux系統中添加運行Mysql的用戶和組
/usr/sbin/groupadd mysql
/usr/sbin/useradd -d /var/lib/mysql -s /sbin/nologin -g mysql mysql
3.1.2 下載最新穩定發行版(GA)的MySQL軟體
訪問MySQL網站http://dev.mysql.com/downloads/下載最新穩定發行版的MySQL源碼包。本文使用的是5.0.51版本,在linux系統下用下面的命令下載:
wget http://mysql.mirror.kangaroot.net/Downloads/MySQL-5.0/mysql-5.0.51.tar.gz
3.1.3 解壓縮下載的源碼包
首先建立一個工作目錄( 筆者建議的目錄為/usr/local/src/mysql ) :
mkdir -p /usr/local/src/mysql
將下載的源碼包移至工作目錄:
mv mysql-5.0.51.tar.gz /usr/local/src/mysql
進入工作目錄並用tar命令解壓源碼包:
cd /usr/local/src/mysql
tar zxvf mysql-5.0.51.tar.gz
命令執行結束後,當前工作目錄下將生成一個新的子目錄mysql-5.0.51,此目錄下即為mysql的源碼文件。
3.1.4 配置Makefile文件
進入MySQL源碼目錄:
cd mysql-5.0.51
執行下面的命令可查看可配置選項:
./configure --help
本文使用的配置命令格式如下:
CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-thread-safe-client --enable-assembler --with-big-tables --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=complex
配置選項說明:
CC:C編譯器的名稱(用於運行configure),本文示例為gcc
CFLAGS:C編譯器的標志(用於運行configure),本文示例為-O3,指定優化級別為3
CXX:C++編譯器的名稱(用於運行configure),本文示例為gcc
CXXFLAGS:C++編譯器的標志(用於運行configure)
--prefix:指定安裝目錄,本文示例為/usr/local/mysql
--localstatedir:指定默認資料庫文件保存目錄,默認為安裝目錄下的var目錄
--enable-thread-safe-client:編譯線程安全版的MySQL客戶端庫
--enable-assembler:使用一些字元函數的匯編版本
--with-client-ldflags:客戶端鏈接參數,本文示例為指定靜態編譯mysql客戶端
--with-mysqld-ldflags:伺服器端鏈接參數,本文示例為指定靜態編譯mysql伺服器
--with-big-tables:在32位平台上支持大於4G行的表
--with-charset:指定默認字元集。mysql默認使用latin1(cp1252)字元集,可以使用此選項更改。字元集可以是big5、cp1251、cp1257、czech、danish、dec8、dos、euc_kr、gb2312、gbk、german1、hebrew、hp8、hungarian、koi8_ru、koi8_ukr、latin1、latin2、sjis、swe7、tis620、ujis、usa7或win1251ukr。
--with-collation:指定默認校對規則。mysql默認使用latin1_swedish_ci校對規則,可以使用此選項更改。
--with-extra-charsets:伺服器需要支持的字元集,有三種可能的值:空格間隔的一系列字元集名;complex ,包括不能動態裝載的所有字元集;all,將所有字元集包括進二進制。本文示例為complex。
注意:要想更改字元集和校對規則,要同時使用--with-charset和--with-collation選項。 校對規則必須是字元集的合法校對規則。(在mysql中使用SHOW COLLATION語句來確定每個字元集使用哪個校對規則)。
3.1.5 編譯源代碼
執行下面的命令編譯源代碼:
make
3.1.6 安裝
執行下面的命令安裝mysql到目標路徑:
make install
3.1.7 復制默認全局啟動參數配置文件到/etc目錄
源碼方式安裝需要手動復制配置文件,配置模板位於源碼樹的support-files目錄,有my-small.cnf、my-medium.cnf、my-large.cnf、my-huge.cnf四個,選擇跟你的環境相接近的一個復制到/etc目錄,並做適當修改。關於mysql配置文件的詳細信息請參閱筆者的其它文章或是mysql官方文檔。
本文示例選擇my-medium.cnf,執行下面的命令將其復制到/etc目錄:
cp ./support-files/my-medium.cnf /etc/my.cnf
3.1.8 初始化授權表
執行下面的命令初始化授權表:
./scripts/mysql_install_db --user=mysql
3.1.9 更改mysql數據目錄屬主和許可權
默認資料庫文件保存目錄為安裝目錄下的var目錄,執行configure命令時可通過--localstatedir參數指定不同的目錄,本文示例為默認位置。
chown -R mysql.mysql /usr/local/mysql/var
chmod -R 700 /usr/local/mysql/var
3.1.10 設置開機自啟動服務控制腳本
執行下面的命令復制啟動腳本到資源目錄:
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
執行下面的命令增加mysqld服務控制腳本執行許可權:
chmod +x /etc/rc.d/init.d/mysqld
執行下面的命令將mysqld服務加入到系統服務:
chkconfig --add mysqld
執行下面的命令檢查mysqld服務是否已經生效:
chkconfig --list mysqld
命令輸出類似下面的結果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服務已經生效,在2、3、4、5運行級別隨系統啟動而自動啟動,以後可以使用service命令控制mysql的啟動和停止。
啟動mysqld服務:
service mysqld start
停止mysqld服務:
service mysqld stop
執行下面的命令關閉開機自啟動:
chkconfig mysqld off
執行下面的命令可以改變開機自啟動的運行級別為3、5:
chkconfig --level 35 mysqld on
3.1.11 將mysql的bin目錄加入PATH環境變數
編輯/etc/profile文件:
vi /etc/profile
在文件最後添加如下兩行:
PATH=$PATH:/usr/local/mysql/bin
export PATH
執行下面的命令使所做的更改生效:
. /etc/profile
3.2 二進制包方式安裝
3.2.1 從安裝媒體安裝
Mysql二進制包已經包含在CentOS 5的安裝媒體中,可以直接從安裝媒體中安裝下面三個rpm包:
mysql-5.0.22-2.1.0.1.i386.rpm
mysql-devel-5.0.22-2.1.0.1.i386.rpm
mysql-server-5.0.22-2.1.0.1.i386.rpm
不同的版本文件名有所不同,請注意區分。
執行下面的命令安裝:
rpm -iUvh mysql-5.0.22-2.1.0.1.i386.rpm
rpm -iUvh mysql-devel-5.0.22-2.1.0.1.i386.rpm
rpm -iUvh mysql-server-5.0.22-2.1.0.1.i386.rpm
3.2.2 通過yum安裝
如果你安裝的機器此時可以連接到互聯網,筆者建議使用yum命令來簡化安裝過程:
yum install mysql-server mysql-devel mysql
yum將自動從centos的鏡像站點查找你指明的軟體的最新二進制包,並檢查軟體包依賴關系,安裝軟體的同時自動安裝其依賴的軟體包。
3.2.3 從mysql網站下載最新穩定版本的二進制包安裝
通過CentOS安裝媒體或yum安裝的二進制包版本會落後於mysql開發者網站發布的版本,可以從mysql網站下載安裝最新穩定版本的mysql。
訪問MySQL網站http://dev.mysql.com/downloads/下載最新穩定發行版的相應硬體平台的MySQL。本文使用的是Red Hat Enterprise Linux 5 RPM (x86) 5.0.45版本。需要下載Server、Client、Headers and Libraries、Share Libraries/Shared compatibility libraries幾個rpm包,其它為可選包,按需要選擇。
在linux系統下用下面的命令下載:
wget http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/MySQL-server-community-5.0.45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/MySQL-client-community-5.0.45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/MySQL-devel-community-5.0.45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/MySQL-shared-community-5.0.45-0.rhel5.i386.rpm
wget http://mysql.mirrors.pair.com/Downloads/MySQL-5.0/MySQL-shared-compat-5.0.45-0.rhel5.i386.rpm
執行下面的命令安裝:
rpm -iUvh MySQL-server-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-client-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-devel-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-shared-community-5.0.45-0.rhel5.i386.rpm
rpm -iUvh MySQL-shared-compat-5.0.45-0.rhel5.i386.rpm
4. MySQL的配置
4.1 目錄結構
4.1.1 源碼包方式安裝目錄結構
源碼包方式安裝時通常是在3.1.4節中configure命令的--prefix選項指定的目錄中建立如下的目錄結構,特殊指定的目錄除外:
./bin #mysql用戶可執行文件目錄
./include/mysql #mysql C頭文件目錄
./info #mysql 信息文件目錄
./lib/mysql #mysql庫文件目錄
./libexec #mysql後台daemon程序目錄
./man #mysql聯機幫助文檔目錄
./mysql-test #mysql測試程序目錄
./share/mysql #mysql公用文件目錄,包括字元集、配置文件模板、啟動腳本、初始化SQL文件等
./sql-bench #mysql壓力測試程序目錄
/etc/my.cnf #mysql配置文件
/etc/rc.d/init.d/mysqld #mysqld服務啟動腳本
4.1.2 RPM二進制包方式安裝目錄結構
二進制包方式安裝時使用系統軟體默認目錄結構 :
/usr/bin #mysql用戶可執行文件目錄
/usr/libexec #mysql後台daemon程序目錄
/usr/lib/mysql #mysql庫文件目錄
/usr/lib64/mysql #如果為64系統,mysql 64位庫文件目錄
/usr/share/doc #mysql文檔目錄
/usr/share/info #mysql信息文件目錄
/usr/share/man #mysql聯機幫助文檔目錄
/usr/share/mysql #mysql字元集目錄
/usr/include/mysql #mysql C頭文件目錄
/var/log #mysqld服務日誌文件目錄
/var/run/mysqld #mysqld服務運行狀態目錄
/var/lib/mysql #mysql數據文件目錄
/etc/my.cnf #mysql配置文件
/etc/rc.d/init.d/mysqld #mysqld服務啟動腳本
4.2 配置文件
Linux系統下,mysql的配置參數文件為my.cnf,一般按下面的順序查找此文件:/etc目錄、mysql安裝目錄、mysql數據目錄。配置模板位於源碼樹的support-files目錄,有my-small.cnf、my-medium.cnf、my-large.cnf、my-huge.cnf四個,關於mysql配置文件的詳細信息請參閱筆者的其它文章或是mysql官方文檔。
4.3 啟動mysqld服務
執行下面的命令啟動mysql:
service mysqld start
4.3 設置mysql帳號
mysql安裝後默認生成兩個帳號:一個是root,未設置密碼,可以從本機登錄到mysql;另一個是匿名帳號,無帳號名、無密碼,可以從本機登錄,未提供用戶名的連接都將假定為此帳號。這樣的設置存在著安全隱患,按下面的步驟進行更改。
以root帳號連接到mysql伺服器:
mysql -u root
如果提示找不到mysql文件,請嘗試使用絕對路徑,如本文示例為:
/usr/local/mysql/bin/mysql -u root
命令成功執行後將進入到mysql命令提示符下:
mysql>
(以下命令均在mysql命令提示符下執行)
改變當前資料庫為mysql:
use mysql
設置從本地主機登錄的root帳號密碼:
set password for root@localhost=password('your password');
或:
update user set password=password('your password') where user='root' and host='localhost';
刪除匿名帳號:
delete from user where user='' ;
刪除密碼為空的帳號:
delete from user where password='';
刪除允許非localhost主機登錄的帳號:
delete from user where host<>'localhost' ;
執行下面的命令使更改生效:
flush privileges ;
執行下面的命令退出mysql命令行:
quit
或:
/q
5. 結束語
至此,Mysql基本安裝完畢。希望本文能對初學者有所幫助。
② Mysql資料庫的安全配置、實用技巧
1、前言
MySQL 是完全網路化的跨平台關系型資料庫系統,同時是具有客戶機/伺服器體系結構的分布式資料庫管理系統。它具有功能強、使用簡便、管理方便、運行速度快、安全可靠性強等優點,用戶可利用許多語言編寫訪問MySQL 資料庫的程序,特別是與php更是黃金組合,運用十分廣泛。
由於MySQL是多平台的資料庫,它的默認配置要考慮各種情況下都能適用,所以在我們自己的使用環境下應該進行進一步的安全加固。作為一個MySQL的系統管理員,我們有責任維護MySQL資料庫系統的數據安全性和完整性。
MySQL資料庫的安全配置必須從兩個方面入手,系統內部安全和外部網路安全,另外我們還將簡單介紹編程時要注意的一些問題以及一些小竅門。
2、系統內部安全
首先簡單介紹一下MySQL資料庫目錄結構。MySQL安裝好,運行了mysql_db_install腳本以後就會建立數據目錄和姿手初始化資料庫。如果我們用MySQL源碼包安裝,而且安裝目錄是/usr/local/mysql,那麼數據目錄一般會是/usr/local/mysql/var。資料庫系統由一系列資料庫組成,每個資料庫包含一系列資料庫表。MySQL是用資料庫名在數據目錄建立建立一個資料庫目錄,各資料庫表分別以資料庫表名作為文件名,擴展名分別為MYD、MYI、frm的三個文件放到資料庫目錄中。
MySQL的授權表給資料庫的訪問提供了靈活的許可權控制,但是如果本地用戶擁有對庫文件的讀許可權的話,攻擊者只需把資料庫目錄打包拷走,謹哪然後拷到自己本機的數據目錄下就祥冊碼能訪問竊取的資料庫。所以MySQL所在的主機的安全性是最首要的問題,如果主機不安全,被攻擊者控制,那麼MySQL的安全性也無從談起。其次就是數據目錄和數據文件的安全性,也就是許可權設置問題。
從MySQL主站一些老的binary發行版來看,3.21.xx版本中數據目錄的屬性是775,這樣非常危險,任何本地用戶都可以讀數據目錄,所以資料庫文件很不安全。3.22.xx版本中數據目錄的屬性是770,這種屬性也有些危險,本地的同組用戶既能讀也能寫,所以數據文件也不安全。3.23.xx版本數據目錄的屬性是700,這樣就比較好,只有啟動資料庫的用戶可以讀寫資料庫文件,保證了本地數據文件的安全。
如果啟動MySQL資料庫的用戶是mysql,那麼象如下的目錄和文件的是安全的,請注意數據目錄及下面的屬性:
shellls -l /usr/local/mysql
total 40
drwxrwxr-x 2 root root 4096 Feb 27 20:07 bin
drwxrwxr-x 3 root root 4096 Feb 27 20:07 include
drwxrwxr-x 2 root root 4096 Feb 27 20:07 info drwxrwxr-x 3 root root 4096 Feb 27 20:07 lib drwxrwxr-x 2 root root 4096 Feb 27 20:07 libexec drwxrwxr-x 3 root root 4096 Feb 27 20:07 man drwxrwxr-x 6 root root 4096 Feb 27 20:07 mysql-test drwxrwxr-x 3 root root 4096 Feb 27 20:07 share drwxrwxr-x 7 root root 4096 Feb 27 20:07 sql-bench drwx------ 4 mysql mysql 4096 Feb 27 20:07 var
shellls -l /usr/local/mysql/var
total 8
drwx------ 2 mysql mysql 4096 Feb 27 20:08 mysql
drwx------ 2 mysql mysql 4096 Feb 27 20:08 test
shellls -l /usr/local/mysql/var/mysql
total 104
-rw------- 1 mysql mysql 0 Feb 27 20:08 columns_priv.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 columns_priv.MYI
-rw------- 1 mysql mysql 8778 Feb 27 20:08 columns_priv.frm
-rw------- 1 mysql mysql 302 Feb 27 20:08 db.MYD
-rw------- 1 mysql mysql 3072 Feb 27 20:08 db.MYI
-rw------- 1 mysql mysql 8982 Feb 27 20:08 db.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 func.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 func.MYI
-rw------- 1 mysql mysql 8641 Feb 27 20:08 func.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 host.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 host.MYI
-rw------- 1 mysql mysql 8958 Feb 27 20:08 host.frm
-rw------- 1 mysql mysql 0 Feb 27 20:08 tables_priv.MYD
-rw------- 1 mysql mysql 1024 Feb 27 20:08 tables_priv.MYI
-rw------- 1 mysql mysql 8877 Feb 27 20:08 tables_priv.frm
-rw------- 1 mysql mysql 428 Feb 27 20:08 user.MYD
-rw------- 1 mysql mysql 2048 Feb 27 20:08 user.MYI
-rw------- 1 mysql mysql 9148 Feb 27 20:08 user.frm
如果這些文件的屬主及屬性不是這樣,請用以下兩個命令修正之:
shellchown -R mysql.mysql /usr/local/mysql/var
shellchmod -R go-rwx /usr/local/mysql/var
③ Think3.2.3怎麼配置多個資料庫連接
Think3.2.3配置多個資料庫連接方法:
一、全局配置定義
常用的配置方式是在應用配置文件或者模塊配置文件中添加下面的配置參數:
//資料庫配置信息
'DB_TYPE' => 'mysql', // 資料庫類型
'DB_HOST' => 'localhost', // 伺服器地址
'DB_NAME' => 'thinkphp', // 資料庫名
'DB_USER' => 'root', // 用戶名
'DB_PWD' => '123456', // 密碼
'DB_PORT' => 3306, // 埠
'DB_PREFIX' => 'think_', // 資料庫表前綴
'DB_CHARSET'=> 'utf8', // 字元集
資料庫的類型由DB_TYPE參數設置。
下面是目前支持的資料庫設置:
DB_TYPE設置 支持的資料庫類型
mysql或mysqli mysql
pgsql pgsql
sqlite sqlite
mssql 或sqlsrv sqlserver
oracle oracle
ibase ibase
mongo mongo
PDO PDO支持的所有資料庫
如果DB_TYPE使用PDO類型的話,資料庫類型則由DB_DSN配置決定。
或者採用如下配置
'DB_DSN' => 'mysql://root:123456@localhost:3306/thinkphp#utf8'
使用DB_DSN方式定義可以簡化配置參數,DSN參數格式為:
資料庫類型://用戶名:密碼@資料庫地址:資料庫埠/資料庫名#字元集
字元集設置需要3.2.1版本以上有效,字元集如果沒有設置的話,默認為utf8。
如果兩種配置參數同時存在的話,DB_DSN配置參數優先。
注意:如果要設置分布式資料庫,暫時不支持DB_DSN方式配置。
如果採用PDO驅動的話,則必須首先配置DB_TYPE為pdo,然後還需要單獨配置其他參數,例如:
//PDO連接方式
'DB_TYPE' => 'pdo', // 資料庫類型
'DB_USER' => 'root', // 用戶名
'DB_PWD' => '', // 密碼
'DB_PREFIX' => 'think_', // 資料庫表前綴
'DB_DSN' => 'mysql:host=localhost;dbname=thinkphp;charset=utf8'
注意:PDO方式的DB_DSN配置格式有所區別,根據不同的資料庫類型設置有所不同,具體可以參考PHP手冊。
配置文件定義的資料庫連接信息一般是系統默認採用的,因為一般一個應用的資料庫訪問配置是相同的。該方法系統在連接資料庫的時候會自動獲取,無需手動連接。
可以對每個模塊定義不同的資料庫連接信息,如果開啟了調試模式的話,還可以在不同的應用狀態的配置文件裡面定義獨立的資料庫配置信息。
二、模型類定義
如果在某個模型類裡面定義了connection屬性的話,則實例化該自定義模型的時候會採用定義的資料庫連接信息,而不是配置文件中設置的默認連接信息,通常用於某些數據表位於當前資料庫連接之外的其它資料庫,例如:
//在模型里單獨設置資料庫連接信息
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
protected $connection = array(
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => '1234',
'db_host' => 'localhost',
'db_port' => '3306',
'db_name' => 'thinkphp',
'db_charset' => 'utf8',
);
}
也可以採用DSN方式定義,例如:
//在模型里單獨設置資料庫連接信息
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
//或者使用DSN定義
protected $connection = 'mysql://root:1234@localhost:3306/thinkphp#utf8';
}
如果我們已經在配置文件中配置了額外的資料庫連接信息,例如:
//資料庫配置1
'DB_CONFIG1' => array(
'db_type' => 'mysql',
'db_user' => 'root',
'db_pwd' => '1234',
'db_host' => 'localhost',
'db_port' => '3306',
'db_name' => 'thinkphp',
'db_charset'=> 'utf8',
),
//資料庫配置2
'DB_CONFIG2' => 'mysql://root:1234@localhost:3306/thinkphp#utf8';
那麼,我們可以把模型類的屬性定義改為:
//在模型里單獨設置資料庫連接信息
namespace Home\Model;
use Think\Model;
class UserModel extends Model{
//調用配置文件中的資料庫配置1
protected $connection = 'DB_CONFIG1';
}
//在模型里單獨設置資料庫連接信息
namespace Home\Model;
use Think\Model;
class InfoModel extends Model{
//調用配置文件中的資料庫配置1
protected $connection = 'DB_CONFIG2';
}
三、實例化定義
除了在模型定義的時候指定資料庫連接信息外,我們還可以在實例化的時候指定資料庫連接信息,例如: 如果採用的是M方法實例化模型的話,也可以支持傳入不同的資料庫連接信息,例如:
$User = M('User','other_','mysql://root:1234@localhost/demo#utf8');
表示實例化User模型,連接的是demo資料庫的other_user表,採用的連接信息是第三個參數配置的。如果我們在項目配置文件中已經配置了DB_CONFIG2的話,也可以採用:
$User = M('User','other_','DB_CONFIG2');
需要注意的是,ThinkPHP的資料庫連接的惰性的,所以並不是在實例化的時候就連接資料庫,而是在有實際的數據操作的時候才會去連接資料庫(額外的情況是,在系統第一次實例化模型的時候,會自動連接資料庫獲取相關模型類對應的數據表的欄位信息)。
④ oracle濡備綍閰嶇疆澶氫釜鏁版嵁搴
Oracle涓鍙浠ラ厤澶氫釜鏁版嵁搴擄紝騫跺彧闇瑕佸紑鍚涓涓渚﹀惉鍣ㄥ氨鍙浠ヤ簡錛屽瑰氫釜鏁版嵁搴撳彧瑕侀厤緗鐩稿簲鐨勬湇鍔″懡鍚嶅氨鍙浠ヨ繛鎺ヤ簡銆 鎴戠敤鐨勬槸Oracle 8.1.7 Enterprise Edition錛孫S鏄疻indows 2000 Server錛屾垜鎶婃垜鐨勯厤緗榪囩▼鍜屾儏鍐靛浘瑙h存槑涓涓嬶紝鍜屽ぇ瀹跺叡鍚屾帰璁ㄣ 絎涓姝ワ細鐢∟et
Oracle涓鍙浠ラ厤澶氫釜鏁版嵁搴擄紝騫跺彧闇瑕佸紑鍚涓涓渚﹀惉鍣ㄥ氨鍙浠ヤ簡錛屽瑰氫釜鏁版嵁搴撳彧瑕侀厤緗鐩稿簲鐨勬湇鍔″懡鍚嶅氨鍙浠ヨ繛鎺ヤ簡銆
鎴戠敤鐨勬槸Oracle 8.1.7 Enterprise Edition錛孫S鏄疻indows 2000 Server錛屾垜鎶婃垜鐨勯厤緗榪囩▼鍜屾儏鍐靛浘瑙h存槑涓涓嬶紝鍜屽ぇ瀹跺叡鍚屾帰璁ㄣ
絎涓姝ワ細鐢∟et8 Configuration Assistant宸ュ叿閰嶇疆鐩戝惉鍣錛屼竴鐩寸偣涓嬩竴姝ワ紝鏈鍚庡畬鎴愬嵆鍙!鐩戝惉鍦板潃涓鑸閰嶆垚榛樿ょ殑1521灝卞彲浠ヤ簡銆
涔熷彲浠ョ敤Net8 Assistant宸ュ叿鏉ラ獙璇佹垨閰嶇疆鐩戝惉鍣錛屽備笅鍥撅紝鍙浠ラ厤緗涓繪満鍜岀鍙c
絎浜屾ワ細鐢∟et8 Assistant宸ュ叿鏉ラ厤緗鍛藉悕鏈嶅姟錛屽備笅鍥撅細
娉ㄦ剰鏈嶅姟鍚嶆槸鏁版嵁搴撳悕錛屼富鏈哄悕鍜岀鍙e彿涓瀹氳佸拰鐩戝惉鍣ㄧ殑涓鏍!
嫻嬭瘯涓涓嬶紝榪炴帴鎴愬姛錛孫K!
濂斤紝鍐嶉厤絎浜屼釜搴撶殑鏈嶅姟鍛藉悕錛屽備笅鍥撅細
娉ㄦ剰鏈嶅姟鍚嶈佸瑰簲鍒扮浜屼釜鏁版嵁搴撳悕!
鍐嶆祴璇曚竴涓嬬浜屼釜搴撶殑榪炴帴錛岃繛鎺ユ垚鍔燂紝OK!
鏈鍚庢湁鍑犵偣娉ㄦ剰錛
1.瀵逛竴鑸濡傛灉鏈夊氫釜搴旂敤紼嬪簭鐢∣racle鐨勬暟鎹搴擄紝涓鑸鍙闇瑕佸緩絝嬩竴涓鏁版嵁搴撳氨鍙浠ヤ簡錛屽逛笉鍚岀殑搴旂敤璁劇珛涓嶅悓鐨勭敤鎴(涓嶅悓鐨勮〃絀洪棿)灝卞彲浠ヤ簡銆
2.濡傛灉澶氫釜搴旂敤紼嬪簭鐨勫瓧絎﹂泦涓嶄竴鏍鳳紝濡傛棦鏈塀IG5鍙堟湁GB2312錛岄偅涓鑸灝遍渶瑕佽冭檻閰嶇疆澶氫釜鏈嶅姟鍣錛屾垨鑰呭緩絝嬪氫釜鏁版嵁搴擄紝鎴栬呰漿鎹㈠埌UTF-8涔嬬被鐨勫瓧絎﹂泦銆
3.濡傛灉寮鍙戦渶瑕佽呭氫釜鐗堟湰鐨凮racle錛屽傚悓鏃跺畨瑁匫racle9i鍜孫racle8.1.7錛屽垯闇瑕侀厤緗鍚勮嚜鐨勭洃鍚絝鍙o紝鐜澧冨彉閲忔病鏈変粈涔堥渶瑕侀厤緗鐨勶紝涓嶄細鍐茬獊;娉ㄥ唽琛ㄩ兘鏀懼湪HKEY_LOCAL_MACHINESOFTWAREORACLE涓嬶紝浣嗘槸浼氬垎HOME0~HOME...涓嶅悓鐨凨ey涓瀛樻斁錛屾墍浠ヤ篃涓嶄細鏈夊啿紿併
4.閰嶇疆鍛藉悕鏈嶅姟鍜岀洃鍚鍣ㄨ繕鍙浠ョ洿鎺ョ紪杈戝備笅2涓鏂囦歡錛
鐩戝惉鍣錛$ORACLE_HOME$ etworkADMINlistener.ora錛屼竴鑸鏂囦歡濡備笅錛
# LISTENER.ORA Network Configuration File: D:DATABASEOracle81 etworkadminlistener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HARRY)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:DATABASEOracle81)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORASUN)
(ORACLE_HOME = D:DATABASEOracle81)
(SID_NAME = ORASUN)
)
(SID_DESC =
(GLOBAL_DBNAME = ORAGCE)
(ORACLE_HOME = D:DATABASEOracle81)
(SID_NAME = ORAGCE)
)
)
鏈嶅姟鍛藉悕錛$ORACLE_HOME$ etworkADMIN nsnames.ora錛屼竴鑸鏂囦歡濡備笅錛
# TNSNAMES.ORA Network Configuration File: D:DATABASEOracle81NETWORKADMIN nsnames.ora
# Generated by Oracle configuration tools.
SMEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORAGCE)
)
)
SMEDI =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORASUN)
)
)
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = ORAGCE)
(PRESENTATION = )
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
榪2涓鏂囦歡鍦$ORACLE_HOME$ etworkADMINSAMPLE涓嬫湁鐩稿簲鐨勮寖渚嬫枃浠訛紝鍙浠ュ弬鑰冦
鐩戝惉鍣ㄩ厤緗淇鏀瑰悗錛岄渶瑕侀噸鏂板惎鍔ㄧ洃鍚鍣ㄧ殑鏈嶅姟!!!
鍐嶈ˉ鍏呬竴鐐癸紝閰嶇疆澶氫釜渚﹀惉鍣ㄦ垨鑰呬竴涓渚﹀惉鍣ㄤ睛鍚澶氫釜鏁版嵁搴撶殑鏃跺欙紝瀵逛睛鍚鍣ㄦ敞鎰忛渶瑕侀厤緗鏁版嵁搴撴湇鍔°
濡傚浘錛屼竴涓渚﹀惉鍣ㄤ睛鍚澶氫釜鏁版嵁搴擄紝濡備笅閰嶇疆錛屾暟鎹搴撳悕鍜孲ID鍒嗗埆鏄疧RASUN鍜孫RAGCE錛屽悓鏍烽厤澶氫釜渚﹀惉鍣ㄤ睛鍚涓涓鏁版嵁搴(鍒嗗埆瀵瑰唴緗戝拰澶栫綉鎻愪緵)錛岋紝濡傛灉紕板埌榪炴帴闂棰橈紝璇峰ぇ瀹舵鏌ヤ竴涓嬫暟鎹搴撻厤緗榪欎竴欏癸紝褰撶劧濡傛灉鐩存帴鍐欐枃浠舵潵閰嶇疆灝卞緢綆鍗曚簡錛屼竴涓嬪氨鍙浠ユ悶瀹氫簡錛屽ぇ瀹朵篃鍙浠ュ圭収鎴戝墠闈㈢粰鍑虹殑閰嶇疆鏂囦歡鐪嬩竴涓嬨
⑤ 怎麼配置伺服器端oracle資料庫
假設資料庫所在伺服器IP地址:192.168.0.1
資料庫實例名為:ora92
用戶名:umap
密碼:umap
第一步打開配置程序
位於:程序-->Oracle - OraHome92-->Configuration and Migration Tools-->Net Configuration Assistant ;
第二步:選擇配置項:
打開程序後,出現的界面中有四個選項, 分別為(1)監聽程序配置,(2)命名方法配置,(3)本地NET服務名配置,(4)目錄使用配置. 這里我們選擇第3個,點下一步
第三步:根據需要選擇操作內容,是添加還是對以前的配置進行修改或刪除;
第四步:根據您要連接的Oracle數據據庫版本選擇, 這里我們選擇Oracle8i或更高版本資料庫或服務;
第五步:服務名,輸入示例中的實例名;
第六步:選擇TCP;
第七步:主機名:輸入示例中的IP地址; 使用默認埠1521;
第八步:使用您的登錄帳戶與密碼進行連接測試
「ORA-12514:TNS:監聽程序當前無法識別連接描述符中請求的服務」的解決方法
ORA-12154:TNS:無法處理服務名
解決方案:
1.服務是否打開
2.監聽是否打開
3.C:oracleora92 etworkadmin目錄下tnsnames.ora文件中是否有你建的庫名和主機名
比如:
AA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =10.144.100.89)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = AA)
)
)
SQL SERVER連接oracle資料庫幾種方法2010年08月27日星期五 09:35 P.M.--1 方式
--查詢oracle資料庫中的表
SELECT *
FROM OPENDATASOURCE(
'MSDAORA',
'Data Source=GE160;UserID=DAIMIN;Password=DAIMIN'
)..DAIMIN.JOBS
舉一反三:在查詢分析器中輸入:
SELECT *
FROM OPENDATASOURCE(
'MSDAORA',
'Data Source=ORCL;User ID=SYSTEM;Password=manager'
)..HKDY.S_HD_HKDY
--在sqlserver中創建與oracle資料庫中的表同名的表
select * into JOBS from
OPENDATASOURCE(
'MSDAORA',
'Data Source=GE160;User ID=daimin;Password=daimin'
)..DAIMIN.JOBS
select * from JOBS
--2、方式
--在master資料庫中查看已經存在的鏈接伺服器
select * from sysservers
EXEC sp_addlinkedserver
@server = 'GE160',
@srvproct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'GE160'
exec sp_addlinkedsrvlogin 'GE160', false,'sa', 'daimin', 'daimin'
--要在企業管理器內指定登錄帳號
exec sp_dropserver GE160
select * from GE160..DAIMIN.JOBS
delete from GE160..DAIMIN.JOBS
--備註:引用ORACLE伺服器上的表時,用戶名稱與表名一定要大寫字母。
SELECT *
FROM OPENQUERY(GE160, 'SELECT * FROMDAIMIN.JOBS')
--3、方式
SELECT a.*
FROM OPENROWSET('MSDAORA',
'GE160';'DAIMIN';'DAIMIN',
DAIMIN.JOBS) AS a
ORDER BY a.JOB_ID
--4、方式 ODBC
--ODBC方式比較好辦
SELECT A.*
FROMOPENROWSET('MSDAORA','GE160';'DAIMIN';'DAIMIN', --GE160是數據源名
DAIMIN.JOBS) AS A
ORDER BY A.JOB_ID
我現在用的是小鳥雲,他們目前官網有活動,3折優惠,建議去看看!
⑥ 電腦怎樣設置資料庫
oracle11g創建資料庫的步驟如下:
1、按住鍵盤上Windows鍵,打開開始菜單,找到Database Configuration Assitant並打開;
2、打開資料庫配置助手Database Configuration Assitant,單擊「下一步」
;步驟1:選擇「創建資料庫」和差知,單擊「下一步」;
3、選擇「一般用途或事務處理」,單擊「下一步」;
4、設置資料庫的名稱和實例名,兩者可設置相同,也可以不同,單擊「下一步」;
5、管理選項配置,不勾選配置Enterprise Manager,單擊「下一步」;
6、資料庫身份證明,可以為不同的賬戶分別設置不同的管理口令,也喚消可以為所有賬戶設置同一口令,單擊「下一步」;
7、資料庫文件所在位置,默認存儲類型:文件系統,存儲位置:使用模版中的資料庫文件位置,也可以自己指定存儲慶談路徑,單擊「下一步」;
8、恢復配置,指定快速恢復區;
9、資料庫內容,根據需要,選擇是否添加示例方案,單擊「下一步」;
10、初始化參數,設置內存、字元集等,單擊「下一步」;11、資料庫存儲,控制文件、數據文件、重做日誌文件位置設置,單擊「下一步」;
12、創建選項,創建資料庫,生成腳本,單擊「完成」,開始創建資料庫
⑦ linux伺服器mysql資料庫怎麼配置
linux伺服器mysql資料庫配置
mysql最流行的關系型資料庫之一,目前隸屬於oracle公司,因體積小、速度快、總體擁有成本低,開放源代碼這一特點,所以是我們日常開發的首選。
工具/原料
mysql5.6
cnetos
方法/步驟
查找以前是否安裝有mysql,使用下面命令:
rpm -qa|grep -i mysql
如果顯示有如下包則說明已安裝mysql
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
如果已安裝,則需要刪除已安裝的資料庫,使用以下命令來刪除資料庫
刪除命令:rpm -e --nodeps 包名
( rpm -ev mysql-4.1.12-3.RHEL4.1 )
刪除老版本mysql的開發頭文件和庫
命令:rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
注意:卸載後/var/lib/mysql中的數據及/etc/my.cnf不會刪除,如果確定沒用後就手工刪除
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
下載mysql的rpm包
可以通過wget下載具體的地址因為不能用鏈接請大家去官網去找
(1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:MySQL伺服器;
(2)MySQL-client-5.6.10-1.rhel5.x86_64.rpm:MySQL客戶端;
(3)MySQL-devel-5.6.10-1.rhel5.x86_64.rpm:Mysql開發依賴包。
下載後放到Liunx伺服器中,如圖所示
安裝MySQL Server的rpm包
rpm -ivh MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm
安裝過程如圖所示
安裝完成後會生成root用戶的隨機密碼,請使用「cat /root/.mysql_secret」或類似命令進行查看。
安裝MySQL客戶端
rpm -ivh MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm
安裝MySQL開發依賴包
rpm -ivh MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm
啟動msyql
安裝完成後mysql是沒有啟動的,運行mysql命令會提示如下錯誤:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
可使用如下命令啟動MySQL:
service mysql start
或者使用如下命令:
/etc/init.d/mysql start
可使用SET PASSWORD命令修改root用戶的密碼,參考如下:SET PASSWORD = PASSWORD('root123456');
⑧ 如何配置mysql資料庫
方法/步驟
MySQL安裝文件分為兩種,一種是msi格式的,一種是zip格式的。如果是msi格式的可以直接點擊安裝,按照它給出的安裝提示進行安裝(相信大家的英文可以看懂英文提示),一般MySQL將會安裝在C:\Program Files\MySQL\MySQL Server 5.6 該目錄中;zip格式是自己解壓,解壓縮之後其實MySQL就可以使用了,但是要進行配置。
解壓之後可以將該文件夾改名,放到合適的位置,個人建議把文件夾改名為MySQL Server 5.6,放到C:\Program Files\MySQL路徑中。當然你也可以放到自己想放的任意位置。
完成上述步驟之後,很多用戶開始使用MySQL,但會出現圖示的錯誤。這是因為沒有配置環境變數所致。配置環境變數很簡單:
我的電腦->屬性->高級->環境變數
選擇PATH,在其後面添加: 你的mysql bin文件夾的路徑 (如:C:\Program Files\MySQL\MySQL Server 5.6\bin )
PATH=.......;C:\Program Files\MySQL\MySQL Server 5.6\bin (注意是追加,不是覆蓋)
配置完環境變數之後先別忙著啟動mysql,我們還需要修改一下配置文件(如果沒有配置,之後啟動的時候就會出現圖中的錯誤哦!:錯誤2 系統找不到文件),mysql-5.6.1X默認的配置文件是在C:\Program Files\MySQL\MySQL Server 5.6\my-default.ini,或者自己建立一個my.ini文件,
在其中修改或添加配置(如圖):
[mysqld]
basedir=C:\Program Files\MySQL\MySQL Server 5.6(mysql所在目錄)
datadir=C:\Program Files\MySQL\MySQL Server 5.6\data (mysql所在目錄\data)
以管理員身份運行cmd(一定要用管理員身份運行,不然許可權不夠),
輸入:cd C:\Program Files\MySQL\MySQL Server 5.6\bin 進入mysql的bin文件夾(不管有沒有配置過環境變數,也要進入bin文件夾,否則之後啟動服務仍然會報錯誤2)
輸入mysqld -install(如果不用管理員身份運行,將會因為許可權不夠而出現錯誤:Install/Remove of the Service Denied!)
安裝成功
安裝成功後就要啟動服務了,繼續在cmd中輸入:net start mysql(如圖),服務啟動成功!
此時很多人會出現錯誤,請看注意:
注意:這個時候經常會出現錯誤2和錯誤1067。
如果出現「錯誤2 系統找不到文件」,檢查一下是否修改過配置文件或者是否進入在bin目錄下操作,如果配置文件修改正確並且進入了bin文件夾,需要先刪除mysql(輸入 mysqld -remove)再重新安裝(輸入 mysqld -install);
如果出現錯誤1067,那就是配置文件修改錯誤,確認一下配置文件是否正確。
服務啟動成功之後,就可以登錄了,如圖,輸入mysql -u root -p(第一次登錄沒有密碼,直接按回車過),登錄成功!