1、 查看 官網(wǎng)的 MySQL 5.7安裝包下載
官方下載地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
需要下載的安裝包包名:
mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
我是使用SSH shell 客戶端登錄服務(wù)器
進(jìn)入local:
cd /usr/local/
創(chuàng)建source文件夾,專門用作下載包路徑.
mkdir source
創(chuàng)建mysql文件夾
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
切換到source目錄,下載到目錄:
cd /usr/local/source/
下載:(600M左右,下載需要點(diǎn)時(shí)間)
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
解壓到當(dāng)前目錄:
tar -xzvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
在當(dāng)source目錄下移動文件到/usr/local/mysql:
mv mysql-5.7.23-linux-glibc2.12-x86_64/* /usr/local/mysql
添加用戶組, 創(chuàng)建mysql用戶添加到mysql組:
groupadd mysql
useradd -g mysql mysql
設(shè)置mysql文件夾權(quán)限
chown -R mysql.mysql /usr/local/mysql/
mysql的服務(wù)腳本放到系統(tǒng)服務(wù)中(local路徑下操作:[root@xx local]# ):
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
復(fù)制配置文件到 /etc/my.cnf
cp -a ./support-files/my-default.cnf /etc/my.cnf
(注意 : 5.7.23解壓后沒看到my-default.cnf, 可跳過該步驟,直接下一步)
修改my.cnf: 配置不對的話,后面初始化不全,會拿不到默認(rèn)密碼
vim /etc/my.cnf
修改內(nèi)容:
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /tmp/mysql.sock
character-set-server = utf8
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
:wq! 保存退出.
my.cnf全文:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/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 = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /tmp/mysql.sock
character-set-server = utf8
#init_connect='SET NAMES utf8'
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.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
#lower_case_table_names = 1
#innodb_force_recovery= 1
#sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#max_connections=5000
#default-time_zone = '+8:00'
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
51,1 Bot 1,1 Top
確保上面配置文件都是存在的,且有修改權(quán)限.
進(jìn)入/var/log/下查看是否有mysqld.log,如果沒有的話:
vim /var/log/mysqld.log
:wq! 保存退出.
設(shè)置權(quán)限:
chown -R mysql /var/log/
chgrp -R mysql /var/log/
同樣的mysqld.pid:
mkdir /var/run/mysqld
vim /var/run/mysqld/mysqld.pid
設(shè)置權(quán)限:
chown -R mysql /var/run/mysqld/
chgrp -R mysql /var/run/mysqld/
chown -R mysql.mysql /usr/local/mysql/
chgrp -R mysql /usr/local/mysql/
查看mysql文件權(quán)限:
進(jìn)入mysql
cd /usr/local/mysql/
查看:
ls -l
安裝和初始化數(shù)據(jù)庫(重要)
首先要進(jìn)入bin文件:
cd /usr/local/mysql/bin/
初始化:
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/--datadir=/usr/local/mysql/data/
A : 如果報(bào)錯(cuò):
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
說明缺少環(huán)境: 執(zhí)行下面命令安裝
yum install libaio
B : 如果報(bào)錯(cuò):
./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or
directory
安裝mysql出現(xiàn)了以上的報(bào)錯(cuò)信息.這是缺少numactl , 這個(gè)時(shí)候如果是Centos就執(zhí)行:
yum -y install numactl
就可以解決這個(gè)問題了.
ubuntu的就執(zhí)行:
sudo apt-get install numactl
就可以解決這個(gè)問題了
安裝成功后再回去執(zhí)行編譯.
安全啟動:
./mysqld_safe --user=mysql &
先進(jìn)入cd support-files文件:
cd /usr/local/mysql/support-files/
把support-files/mysql.server 拷貝為/etc/init.d/mysql
cp mysql.server /etc/init.d/mysql
并設(shè)置運(yùn)行權(quán)限
chmod +x /etc/init.d/mysql
把mysql注冊為開機(jī)啟動的服務(wù)
chkconfig --add mysql
查看是否添加成功
chkconfig --list mysql
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
啟動:
service mysql start
成功:
默認(rèn)密碼在mysqld.log日志里, 找到后保存到安全的地方:
cat /var/log/mysqld.log
其中root@localhost: 后面的就是默認(rèn)密碼,后面登錄用.(如果找不到可能默認(rèn)是空,登錄時(shí)密碼直接回車,否則可能安裝有問題)
進(jìn)入bin文件:
cd /usr/local/mysql/bin/
登錄mysql:
./mysql -u root -p
登錄mysql:
上面登錄必須要指定mysql路徑,下面設(shè)置通用啟動,做個(gè)鏈接即可:
ln -s /usr/local/mysql/bin/mysql /usr/bin
然后啟動方法可以用:
mysql -u root -p
回車后輸入剛才的密碼,回車:
假設(shè)修改密碼為abc123(注意結(jié)尾加冒號):
mysql> set password=password("abc123");
設(shè)置遠(yuǎn)程登錄權(quán)限
mysql> grant all privileges on *.* to'root' @'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
立即生效:
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
退出quit; 或者 exit;
mysql> quit;
創(chuàng)建快捷方式
ln -s /usr/local/mysql/bin/mysql /usr/bin