1轩勘,下載mysql安裝包
wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
2均芽,將下載好的文件放置在/usr/local目錄下散休,并解壓
tar -zxvf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
3, 重命名并刪除安裝包
mv mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz mysql
rm -rf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz(可以選擇保留)
4,創(chuàng)建mysql用戶組及系統(tǒng)用戶
groupadd mysql
useradd -r -g mysql mysql (-r 表示創(chuàng)建系統(tǒng)用戶园匹,-g表示系統(tǒng)用戶所屬用戶組)
5雳刺,進入mysql目錄,執(zhí)行mysql配置操作裸违,死否覆蓋按Y覆蓋掖桦。
cp support-files/my-default.cnf /etc/my.cnf
6,編輯/etc/my.cnf文件
vi /etc/my.cnf
內(nèi)容如下:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
# server_id = .....
socket = /tmp/mysql.sock
character-set-server = utf8
skip-name-resolve
log-err = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
7供汛,在mysql當前目錄下設定目錄的訪問權(quán)限(注意后面的小點枪汪,表示當前目錄)
chown -R mysql .? ? ? ? ? #修改當前目錄的所有者(用戶)為mysql,-R表示遞歸處理所有文件或者文件夾
chgrp -R mysql .? ? ? ? ? #修改當前目錄所屬的用戶組為mysql用戶組
chown -R root .
chown -R mysql data? ? ? #修改data沒有了的所有者為mysql用戶
8紊馏,初始化數(shù)據(jù)(在mysql/bin或者mysql/scripts下有個 mysql_install_db 可執(zhí)行文件初始化數(shù)據(jù)庫)料饥,進入mysql/bin或者mysql/scripts目錄下,執(zhí)行下面命令:
./mysql_install_db --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp
如果執(zhí)行過程中出現(xiàn)如下錯誤朱监,說明是缺少相關依賴,執(zhí)行如下命令解決原叮,解決后重新執(zhí)行腳本赫编。
yum -y install autoconf 或者 yum -y install perl perl-devel
yum install libaio* 或者 yum -y install libaio-devel
9,啟動mysql奋隶,進入/usr/local/mysql/bin目錄擂送,執(zhí)行下面命令
./mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root &
10,配置mysql服務和開機啟動(這個是針對linux系統(tǒng)的通用操作唯欣,centos7有其他方式)嘹吨,可以參看《Centos7 自定義systemd service服務和開機啟動》一文
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
chmod 700 /etc/init.d/mysql
chkconfig --add mysqld
chkconfig --level 2345 mysqld on
chown mysql:mysql -R /usr/local/mysql/
11,可以選擇重啟操作系統(tǒng)reboot境氢,查看開機啟動是否生效蟀拷。
12,操作mysql服務的命令
service mysqld status #查看mysql狀態(tài)
service mysqld restart? #重啟mysql服務
service mysqld stop #停止mysql服務
service mysqld start #啟動mysql服務
13萍聊,添加msql客戶端
ln? -s /usr/local/mysql/bin/mysql? /usr/bin
14问芬,更改訪問權(quán)限
登錄mysql,執(zhí)行下面命令:
mysql -uroot -p
密碼為空直接回車,運行以下兩條命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' with grant option;
Flush privileges;
15,退出mysql
exit
注:本機訪問mysql寿桨,root賬戶默認是沒有密碼的此衅,端口號默認3306,如果需要修改root賬戶密碼,在/usr/local/mysql/bin目錄下挡鞍,執(zhí)行下面命令
./mysqladmin -h 127.0.0.1 -P3306 -uroot password 'root123'exit
16骑歹,mysql訪問遇到的問題
使用navicat客戶端,在其他機器上用賬號和密碼連接mysql服務器能夠正常連接和操作墨微,但是在本機上利用 mysql -hMysql服務器ip -uroot -proot123卻拒絕連接道媚,利用mysql -hMysql服務器ip -uroot -p 回車卻能夠正常登陸,這造成了部署到該服務器的web系統(tǒng)不能夠正常連接mysql服務器欢嘿。
問題原因:mysql是針對不同的ip衰琐,同一個用戶可以擁有不同的密碼,出現(xiàn)上述問題的原件就是navicat客戶端所在機器的ip使用的root賬號需要密碼炼蹦,但是本地用root連接mysql服務器卻不需要密碼羡宙。
解決辦法:1,查詢系統(tǒng)庫mysql中的user表
select user,host,password from user;
2掐隐,刪除host為localhost狗热、127.0.0.1且密碼為null的字段,為了安全甚至可以將user為null的內(nèi)容也刪除虑省。
3匿刮,執(zhí)行
flush privileges;
4,重啟mysql服務
service mysqld restart