資料目錄位置
- RPM 安裝:
/var/lib/mysql/
- 原始碼安裝(
/usr/local/mysql):/usr/local/mysql/var/
資料庫匯出/匯入
# 匯出
mysqldump db_name > dump.sql
# 匯入
mysqladmin create db_name
mysql db_name < dump.sql
Root 密碼遺忘重置
systemctl stop mysqld
mysqld_safe --skip-grant-tables &
mysqladmin -u root password 'newpass'
mysqladmin flush-privileges
快速安裝 PHP/MySQL(RPM)
rpm -ivh mysql*.rpm php-mysql*.rpm
mysql_install_db
systemctl start mysqld
修改 Root 密碼兩種方式
# 方式 1:SQL 更新
mysql -uroot -p mysql
UPDATE user SET password=PASSWORD('newpass') WHERE user='root';
FLUSH PRIVILEGES;
# 方式 2:mysqladmin
mysqladmin -uroot -poldpass password newpass
# 初次無舊密碼可省略 -poldpass
RPM 安裝完整套件
rpm -ivhU mysql-5.0.19-0.i386.rpm
rpm -ivhU mysql-devel-5.0.19-0.i386.rpm
rpm -ivhU mysql-client-5.0.19-0.i386.rpm
二進制包安裝標準流程
groupadd mysql
useradd -g mysql mysql
cd /usr/local
tar zxf mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
ln -s mysql-standard-4.1.13-pc-linux-gnu-i686 mysql
cd mysql
scripts/mysql_install_db --user=mysql
chgrp -R mysql .
bin/mysqld_safe --user=mysql &
自行編譯安裝(RedHat 9 範例)
tar zxf mysql-4.1.13.tar.gz
cd mysql-4.1.13
./configure --prefix=/usr/local/mysql --enable-assembler \
--with-mysqld-ldflags=-all-static --localstatedir=/usr/local/mysql/data \
--with-unix-socket-path=/tmp/mysql.sock --with-charset=complex \
--with-low-memory --with-mit-threads
make && make install
# 後續建立使用者、權限、啟動同二進制包
登入與 Socket 連線問題排查
# 標準登入
mysql -uuser -ppassword database
# 錯誤:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
# 解決三法:
# 1. 修改 /etc/my.cnf 指定正確 socket 路徑
[client]
socket = /tmp/mysql.sock
# 2. 強制 TCP 連線
mysql -h 127.0.0.1 -uuser -ppassword
# 3. 建立軟連結
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
建立受限帳號(最小權限原則)
-- 僅允許本機登入,操作 mydb
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';