萬盛學電腦網

 萬盛學電腦網 >> Solaris介紹 >> Solaris10下mysql的pkg安裝方法

Solaris10下mysql的pkg安裝方法

以root登錄系統 1從dev.mysql.com網站下載安裝文件mysql-5.1.11-beta-solaris10-sparc-64bit.pkg.gz保存到/tmp 2解壓縮gz格式安裝文件gunzip mysql-5.1.11-beta-solaris10-sparc-64bit.pkg.gz 3建立mysql用戶組和用戶,並為用戶指定home目錄 groupadd mysql u

以root登錄系統
1從dev.mysql.com網站下載安裝文件mysql-5.1.11-beta-solaris10-sparc-64bit.pkg.gz保存到/tmp
2解壓縮gz格式安裝文件gunzip mysql-5.1.11-beta-solaris10-sparc-64bit.pkg.gz
3建立mysql用戶組和用戶,並為用戶指定home目錄
groupadd mysql
useradd -g mysql mysql
mkdir /export/home/mysql
chgrp mysql /export/home/mysql
chown mysql /export/home/mysql
usermod -d /export/home/mysql mysql
可以用su - mysql驗證mysql能否登錄
4安裝pkg
pkgadd -d mysql-5.1.11-beta-solaris10-sparc-64bit.pkg
MySQL被安裝到/opt/mysql/mysql/
5安裝後的任務
建立目錄連接
cd /usr/local
ln -s /opt/mysql/mysql/ mysql
建立配置文件
vi /etc/my.cnf

[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
6初始化MySQL
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql
7啟動MySQL服務器
切換到mysql用戶
/usr/local/mysql/bin/mysqld-max &
或者
/usr/local/mysql/bin/mysqld-max --user=mysql&
root用戶不能直接啟動MySQL服務器
8關閉服務器
mysqladmin -u root shutdown

9卸載MySQL
root用戶執行
pkgrm mysql
從二進制分發包安裝mysql比從源代碼安裝還是簡單
但是MySQL的安裝手冊裡沒有給出各種錯誤的解決辦法
比如:我曾經遇到的
/opt/mysql/mysql/bin/mysqld-max: Table 'mysql.general_log' doesn't exist
060716 10:50:16 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
就是因為沒有建立配置文件 /etc/my.cnf
而且pkg包自動為MySQL相關目錄建立權限,不需要像安裝手冊說的手工做。

順帶記錄一下在MySQL配置過程中可能會用到的重要東西:

通過直接修改授權表設置用戶權限

shell> mysql --user=root mysql

 

mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','custom',PASSWORD('stupid'));

mysql> INSERT INTO user (Host,User,Password) VALUES('server.domain','custom',PASSWORD('stupid'));

mysql> INSERT INTO user (Host,User,Password) VALUES('whitehouse.gov','custom',PASSWORD('stupid'));


mysql> INSERT INTO db 

    (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,  Create_priv,Drop_priv)

    VALUES  ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');

 

mysql> INSERT INTO db

    (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv)

    VALUES ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y');

 

mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv)

    VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y');

 

mysql> FLUSH PRIVILEGES;




默認情況下mysql是不能遠程連接的,需要修改權限設置:
兩種方法:

在命令行下,可以有兩種大同小異的方法來作此設置:

(1)mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;

mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;

第一句增加了一個root用戶授權通過本地機(localhost)訪問,密碼“something”。

第二句則是使用通配符,授與root用戶從任何其它主機發起的訪問。

 

(2)亦可直接使用update語句修改user表:使用root用戶或其他用戶登錄mysql,轉到mysql數據庫

update user set host='localhost' where user='root';

flush privileges;//只允許root在本機登錄

 

update user set host='%' where user='root';

flush privileges;//允許root遠程訪問



在4.1以上版本的MySQL中的密碼的哈希算法有了變化,可能會導致一些使用老協議的客戶端連接失敗,提示錯誤信息:1251 Client does not support authentication protocol requested by server; consider upgrading MySQL client。 這是相應的處理方法:
mysql>  UPDATE mysql.user SET password = OLD_PASSWORD('yourpwd')  WHERE host = 'yourhost' AND user='username';

mysql> FLUSH PRIVILEGES;

  以上文章轉載於: http://blog.csdn.net/
copyright © 萬盛學電腦網 all rights reserved