最近安裝mysql時看到一篇不錯的文章
1、下載
下載地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads
下載版本:我這里選擇的5.6.33,通用版,linux下64位
也可以直接復制64位的下載地址,通過命令下載:
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
2、解壓,復制解壓后的mysql目錄到系統的本地軟件目錄
#解壓
tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
#復制解壓后的mysql目錄
cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
3、添加系統mysql組和mysql用戶
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
注意:Because the user is required only for ownership purposes, not login purposes, the useradd command uses the -r and -s /bin/false options to create a user that does not have login permissions to your server host. Omit these options if your useradd does not support them.
4、進入安裝mysql軟件目錄,修改目錄擁有者為mysql用戶
cd mysql/
chown -R mysql:mysql ./
5、安裝數據庫,此處可能出現錯誤。
./scripts/mysql_install_db --user=mysql
FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db:Data::Dumper
#解決方法:
yum install -y perl-Data-Dumper
6、修改當前目錄擁有者為root用戶
chown -R root:root ./
7、修改當前data目錄擁有者為mysql用戶
chown -R mysql:mysql data
============== 到此數據庫安裝完畢 =============
8、添加mysql服務開機自啟動
添加開機啟動,把啟動腳本放到開機初始化目錄。
復制代碼
cp support-files/mysql.server /etc/init.d/mysql
# 賦予可執行權限
chmod +x /etc/init.d/mysql
# 添加服務
chkconfig --add mysql
# 顯示服務列表
chkconfig --list
如果看到mysql的服務,并且3,4,5都是on的話則成功,如果是off,則執行
chkconfig --level 345 mysql on
9、啟動mysql服務
#創建缺少的文件夾
mkdir /var/log/mariadb
service mysql start
正常提示信息:Starting MySQL. SUCCESS!
12、把mysql客戶端放到默認路徑
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
注意:建議使用軟鏈過去,不要直接包文件復制,便于系統安裝多個版本的mysql
=================== 這是分割線 ==================
通過使用 mysql -uroot -p 連接數據庫(默認數據庫的root用戶沒有密碼,這個需要設置一個密碼)。
錯誤信息:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
解決方法:打開/etc/my.cnf,看看里面配置的socket位置是什么目錄。“socket=/var/lib/mysql/mysql.sock”
路徑和“/tmp/mysql.sock”不一致。建立一個軟連接:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
到這里任務算是完成了。之后就可以創建數據庫用戶,然后使用數據庫了。
權限控制
1、去除匿名用戶
# 測試匿名用戶登錄
mysql -ux3
# 刪除匿名用戶,使用root用戶登錄數據庫
delete from mysql.user where User='';
flush privileges;