RedHat 9.0 內建 mysql-3.23.54a-11.i386.rpm,直接安裝會報缺 perl-DBD-MySQL:
rpm -ivh mysql-3.23.54a-11.i386.rpm
# error: Failed dependencies: perl-DBD-MySQL is needed
安裝 Perl 模組又缺 libmysqlclient.so.10,光碟與網路均找不到對應套件。關鍵發現:這兩個 RPM 互相依賴,單獨安裝任一均會失敗。
# 先強制安裝 MySQL 主程式(忽略依賴)
rpm -ivh mysql-3.23.54a-11.i386.rpm --nodeps
# 再安裝 Perl 模組(此時 libmysqlclient 已存在)
rpm -ivh perl-DBD-MySQL-2.1021-3.i386.rpm
雙雙安裝成功。此為互賴套件常見陷阱,若不知情極易陷入尋找不存在的 libmysqlclient.so.10 獨立套件的誤區。
# 服務狀態檢查
mysqlshow
mysqlshow -u root mysql
mysqladmin version status process
mysql test
# 移除匿名用戶
mysql> DELETE FROM user WHERE Host='localhost' AND User='';
mysql> QUIT
mysqladmin reload
# 設定 root 密碼
mysqladmin -u root password 'your_password'
# 關機指令(設密後需帶認證)
mysqladmin -u root -p'your_password' shutdown
| 操作 | 指令範例 |
|---|---|
| 列出資料庫 | mysqlshow -u root -p / SHOW DATABASES; |
| 列出資料表 | mysqlshow db_name -u user -p / SHOW TABLES; |
| 切換資料庫 | USE db_name; |
| 查看當前資料庫 | SELECT DATABASE(); |
| 刪除資料庫 | DROP DATABASE [IF EXISTS] db_name; |
| 授權完整權限 | GRANT ALL ON db_name.* TO 'user'@'host'; |
| 檢視表結構 | DESCRIBE table_name; |
| 匯入文字檔 | LOAD DATA LOCAL INFILE 'file.txt' INTO TABLE tbl; |
| 日期轉年齡 | SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 FROM pet; |
| 模糊查詢 5 字元 | SELECT * FROM pet WHERE name LIKE '_____'; |
| 備份資料庫 | mysqldump --add-drop-table --opt test > backup.sql |
| 新增主鍵 | ALTER TABLE t2 ADD PRIMARY KEY (name); |