mysql安裝方式有哪些?
mysql的安裝方式有很多種,比如:yum安裝,rpm安裝等等,不過生產中常用的有兩種:
1、cmake編譯安裝
2、二進位制安裝
本文主要講解二進位制安裝,一是二進位制安裝方便,二是它是很多資料庫DBA喜歡採用的方式。
安裝版本選擇
mysql安裝,我們這裡選擇最新的mysql5.7.28社群版
下來我們去官網下載最新的mysql5.7.28社群版,開啟mysql官網地址
https://www.mysql.com/downloads/
開啟mysql官網地址
選擇mysql community server
mysql目前最新版本是mysql8.0,因為Mysql5.7還是主流,我們這裡選擇最新的mysql5.7.28
選擇mysql5.7
選擇二進位制,64位的tar壓縮包進行下載
下載上圖選擇的壓縮包下載
下載完成後把壓縮包上傳到linux伺服器上,可以採用rz或者winscp,把二進位制包上傳到伺服器指定的目錄,我的賬號是:wyboxl,所以我上傳到了/home/wyboxl/tools目錄下
檢視上傳情況
ls -al /home/wyboxl/tools
drwxr-xr-x 2 root root 107 Sep 26 05:32 .
drwx------. 16 wyboxl wyboxl 4096 Sep 22 15:35 ..
-rw-r--r-- 1 root root 644916075 Sep 23 23:20 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
當前的Linux系統版本環境情況如下:
[root@web02 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@web02 ~]# uname -r
3.10.0-957.27.2.el7.x86_64
[root@web02 ~]# uname -a
Linux web02 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
主機名和ip地址的解析,寫到host檔案
我的伺服器當前ip地址是10.11.1.137,大家需要更換成自己的ip和主機名
echo "10.11.1.137 web02" >> /etc/hosts
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.11.1.137 web02
ping web02測試
解除安裝主機自帶的mysql
rpm -qa |grep mysql
rpm -e --nodeps *mysql*
rpm -qa|grep mariadb
rpm -e --nodes mariadb*
新增使用者和組
useradd -s /sbin/nologin -M mysql
新增成功後用id命令檢視
id mysql
關閉防火牆
systemctl stop firewalld.service
systemctl disable firewalld.service
安裝mysql
建立應用目錄
mkdir /app
進入原始碼包上傳的目錄
cd /home/wyboxl/tools
解壓原始碼包
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
移動解壓的原始碼包到應用目錄
mv mysql-5.7.28-linux-glibc2.12-x86_64 /app/mysql-5.7.28
建立快捷方式
ln -s /app/mysql-5.7.28/ /app/mysql
在全域性配置檔案設定環境變數
echo 'export PATH=/app/mysql/bin:$PATH' >>/etc/profile
檢視最後一條配置的資料
tail -l /etc/profile
讓新增的變數生效
source /etc/profile
檢視設定的變數生效情況
echo $PATH
which mysql
配置/etc/my.cnf配置檔案(直接粘入下面一段配置)
[mysql]
default-character-set=utf8
socket=/app/mysql/tmp/mysql.sock
[mysqld]
port = 3306
socket=/app/mysql/tmp/mysql.sock
basedir=/app/mysql
datadir=/app/mysql/data
character-set-server=utf8
default-storage-engine=INNODB
innodb_buffer_pool_size = 1000M
max_allowed_packet=16M
explicit_defaults_for_timestamp=1
log-output=FILE
general_log = 0
general_log_file=/app/mysql/log/general.err
slow_query_log = ON
slow_query_log_file=/app/mysql/log/slow-query.err
long_query_time=1
log-error=/app/mysql/log/error.err
初始化資料庫
mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/app/mysql --datadir=/app/mysql/data --user=mysql
初始化成功後可以在日誌檔案的最後一行看到初始密碼
cat /app/mysql/log/error.err
初始化成功後可以在日誌檔案的最後一行看到初始密碼
配置Centos Linux啟動和停止指令碼
vi /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 65536
LimitNPROC = 65536
配置systemctl啟動和停止方法
systemctl daemon-reload
systemctl stop mysqld
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
手要啟動和停止MySQL方法
nohup /app/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
mysqladmin -uroot -p shutdown -S /app/mysql/tmp/mysql.sock
遠端連線,需要-h指定連線地址
mysql -uroot -p -h 10.11.1.137
退出資料庫
quit
exit
找回root密碼
啟動的時候加上:--skip-grant-tables 忽略授權登入驗證
mysqld_safe --skip-grant-tables --user=mysql >/dev/null 2>&1 &
修改使用者密碼
mysql -u root -p
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
exit;
建立使用者
create USER 'wyboxl'@'%' IDENTIFIED BY 'root';
%允許遠端登陸資料庫,如果是本地登陸,設定成localhost,或者本地的ip地址
create USER 'wyboxl'@'localhost'
grant all privileges on *.* to 'wyboxl'@'%' ;
重新整理許可權
FLUSH PRIVILEGES;