01、MySQL資料庫多種安裝方式
阿新 • • 發佈:2022-05-12
資料庫官網下載地址 https://downloads.mysql.com/archives/community/
一 linux系統
1.1 原始碼安裝資料庫(自定義安裝目錄)
1)下載程式碼包
[root@db01 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.46.tar.gz
2)安裝依賴
[root@db01 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf openssl openssl-devel
3)解壓
[root@db01 ~]# tar xf mysql-5.6.46.tar.gz
4)建立目錄
[root@db01 ~]# mkdir /service
5)生成cmake
[root@db01 ~]# cd mysql-5.6.46/
[root@db01 ~]# cmake . -DCMAKE_INSTALL_PREFIX=/service/mysql-5.6.46 \
-DMYSQL_DATADIR=/service/mysql-5.6.46/data \
-DMYSQL_UNIX_ADDR=/service/mysql-5.6.46/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0
#程式存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/service/mysql-5.6.46 \
#資料存放位置
-DMYSQL_DATADIR=/service/mysql-5.6.46/data \
#socket檔案存放位置
-DMYSQL_UNIX_ADDR=/service/mysql-5.6.46/tmp/mysql.sock \
#使用utf8字符集
-DDEFAULT_CHARSET=utf8 \
#校驗規則
-DDEFAULT_COLLATION=utf8_general_ci \
#使用其他額外的字符集
-DWITH_EXTRA_CHARSETS=all \
#支援的儲存引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#禁用的儲存引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
#啟用zlib庫支援(zib、gzib相關)
-DWITH_ZLIB=bundled \
#啟用SSL庫支援(安全套接層)
-DWITH_SSL=bundled \
#啟用本地資料匯入支援
-DENABLED_LOCAL_INFILE=1 \
#編譯嵌入式伺服器支援
-DWITH_EMBEDDED_SERVER=1 \
# mysql5.6支援了google的c++mock框架了,允許下載,否則會安裝報錯。
-DENABLE_DOWNLOADS=1 \
#禁用debug(預設為禁用)
-DWITH_DEBUG=0
#編譯
5)編譯 make
[root@db01 mysql-5.6.46]# make
6)安裝 make install
[root@db01 mysql-5.6.46]# make install
7)做軟連線
[root@db01 ~]# ln -s /service/mysql-5.6.46 /service/mysql
8)建立資料庫使用者
[root@db01 ~]# useradd mysql -s /sbin/nologin -M
9)拷貝配置檔案和啟動檔案
#1.進入配置檔案和指令碼的目錄 [root@db01 ~]# cd /service/mysql/support-files/ #2.拷貝配置檔案 [root@db01 support-files]# cp my-default.cnf /etc/my.cnf
10)配置system管理MySQL服務
#1.配置system管理MySQL [root@db01 ~]# vim /usr/lib/systemd/system/mysql.service [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=https://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=/service/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 #2.重新載入啟動檔案列表 [root@db01 ~]# systemctl daemon-reload
11)初始化資料庫
#1.進入初始化目錄 [root@db01 support-files]# cd /service/mysql/scripts/ #2.執行初始化命令 [root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data
12)建立socket檔案目錄(二進位制安裝沒有)
#先建立tmp目錄 [root@db01 ~]# mkdir /service/mysql/tmp
13)授權資料庫目錄
[root@db01 ~]# chown -R mysql.mysql /service/mysql [root@db01 ~]# chown -R mysql.mysql /service/mysql-5.6.46
14)system管理啟動MySQL
[root@db01 ~]# systemctl start mysql [root@db01 ~]# ps -ef | grep [m]ysql mysql 23509 1 3 22:36 ? 00:00:01 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf [root@db01 ~]# netstat -lntp | grep 3306 tcp6 0 0 :::3306 :::* LISTEN 23509/mysqld
15)配置環境變數直接使用mysql
[root@db01 ~]# vim /etc/profile.d/mysql.sh export PATH=/service/mysql/bin:$PATH [root@db01 ~]# source /etc/profile
16)修改root使用者密碼
[root@db01 ~]# mysql -u root -p #預設root使用者密碼為空,有多種方式重置root密碼 第一種: MySQL > SET PASSWORD=PASSWORD('123456'); Query OK, 0 rows affected (0.00 sec) 第二種: MySQL > grant all privileges on *.* to root@'%' identified by 'oldboy'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 注意:兩種重置密碼方式有區別。
1.2 二進位制安裝(自定義安裝目錄)
1)下載二進位制包
[root@db01 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
2)安裝依賴
[root@db01 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf
3)解壓安裝包
[root@db01 ~]# tar xf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
4)建立自定義目錄
[root@db01 ~]# mkdir /service
5)移動目錄並改名
[root@db01 ~]# mv mysql-5.6.46-linux-glibc2.12-x86_64 /service/mysql-5.6.46
6)做軟連線
[root@db01 ~]# ln -s /service/mysql-5.6.46 /service/mysql
7)建立資料庫使用者
[root@db01 ~]# useradd mysql -s /sbin/nologin -M
8)拷貝配置檔案和啟動檔案
#1.進入配置檔案和指令碼的目錄 [root@db01 ~]# cd /service/mysql/support-files/ #2.拷貝配置檔案 [root@db01 support-files]# cp my-default.cnf /etc/my.cnf cp: overwrite ‘/etc/my.cnf’? y #3.拷貝啟動指令碼 [root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
9)初始化資料庫
#1.進入初始化目錄 [root@db01 support-files]# cd /service/mysql/scripts/ #2.執行初始化命令 [root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data
10)啟動資料庫
[root@db01 scripts]# /etc/init.d/mysqld start /etc/init.d/mysqld: line 244: my_print_defaults: command not found /etc/init.d/mysqld: line 264: cd: /usr/local/mysql: No such file or directory Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
11)如果是二進位制安裝到自定義目錄下需要修改指令碼目錄
本例中就安裝到了/service目錄下,所以需要修改指令碼中的預設路徑
[root@db01 scripts]# sed -i 's#/usr/local#/service#g' /etc/init.d/mysqld /service/mysql/bin/mysqld_safe
12)授權資料庫目錄
[root@db01 ~]# chown -R mysql.mysql /service/mysql [root@db01 ~]# chown -R mysql.mysql /service/mysql-5.6.46
13)再次啟動
[root@db01 scripts]# /etc/init.d/mysqld start Starting MySQL.Logging to '/service/mysql/data/db04.err'. SUCCESS! [root@db01 scripts]#
14)檢查程序和埠
[root@db01 scripts]# ps -ef | grep [m]ysql root 23083 1 0 20:36 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/db02.pid mysql 23191 23083 0 20:36 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=db02.err --pid-file=/usr/local/mysql/data/db02.pid [root@db01 scripts]# netstat -lntp | grep 3306 tcp6 0 0 :::3306 :::* LISTEN 23191/mysqld [root@db01 scripts]#
15)配置system管理MySQL服務
#1.配置system管理MySQL [root@db01 ~]# vim /usr/lib/systemd/system/mysql.service [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=https://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=/service/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 #2.重新載入啟動檔案列表 [root@db01 ~]# systemctl daemon-reload
16)檢視MySQL配置檔案檢索順序
[root@db01 mysql]# /service/mysql/bin/mysql --help|grep 'my.cnf' order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
17)配置my.cnf
#1.配置指定資料庫安裝目錄與資料目錄 [root@db01 scripts]# vim /etc/my.cnf [mysqld] basedir=/service/mysql datadir=/service/mysql/data #2.啟動 [root@db01 scripts]# systemctl start mysql
19)配置環境變數直接使用mysql
[root@db01 ~]# vim /etc/profile.d/mysql.sh export PATH=/service/mysql/bin:$PATH [root@db01 ~]# source /etc/profile
1.3 YUM安裝
1)配置MySQL的yum源
[root@db01 ~]# cat /etc/yum.repos.d/mysql-community.repo # Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/ enabled=1 gpgcheck=0
2)檢查儲存庫是否正確配置
[root@db01 ~]# yum repolist enabled | grep mysql
3)禁用預設的MySQL模組
[root@db01 ~]# sudo yum module disable mysql
4)安裝MySQL
[root@db01 ~]# sudo yum install mysql-community-server
5)啟動MySQL
[root@db01 ~]# sudo service mysqld start Starting mysqld (via systemctl): [ OK ]
6)檢查MySQL執行狀態
[root@db01 ~]# sudo service mysqld status
7)保護執行MySQL
[root@db01 ~]# mysql_secure_installation
1.4 MySQL5.6與MySQL5.7安裝的區別
1.4.1 cmake的時候加入了bostorg
建議大家使用二進位制的包安裝,已經過了cmake階段,已經把bostorg裝好了
[root@db02 mysql-5.7.20]# yum install -y gcc gcc-c++ automake autoconf [root@db02 mysql-5.7.20]# yum install make cmake bison-devel ncurses-devel libaio-devel [root@db02 mysql-5.7.20]# wget httpss://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_59_0.tar.gz #登入boost.org下載也可以 [root@db02 mysql-5.7.20]# tar xf boost_1_59_0.tar.gz -C /usr/local/ [root@db02 mysql-5.7.20]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20 \ -DMYSQL_DATADIR=/application/mysql-5.7.20/data \ -DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock \ #安裝bostorg -DDOWNLOAD_BOOST=1 \ #安裝的目錄 -DWITH_BOOST=/usr/local/boost_1_59_0 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \ -DWITH_ZLIB=bundled \ -DWITH_SSL=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DENABLE_DOWNLOADS=1 \ -DWITH_DEBUG=0
1.4.2 初始化時 使用的命令不一樣了
#5.6初始化命令 /service/mysql/scripts/mysql_install_db --user= --basedir= --datadir= #5.7初始化命令 /usr/local/mysql/bin/mysqld --initialize --user= --basedir= --datadir= #初始--initialize會生成一個臨時的隨機密碼,他會告訴你位置,你自己去找使用密碼登入,而且修改密碼也需要一個很複雜的密碼,大小寫數字特殊符號 #想不讓他生成密碼的話,還可以用另外一個引數--initialize-insecure
1.4.3 mysql5.7初始密碼
# yum安裝完畢mysql5.7,首次初始啟動msyql會生成root的隨機密碼 # 可以通過下述命令檢視 grep "temporary password" /var/log/mysqld.log # 檢視到隨機密碼後,登入,注意密碼用單引號引起來,因為隨機密碼中可能有特殊字元 mysql -uroot -p '隨機密碼' # 設定密碼,密碼已經不能再用弱密碼了,弱密碼會報錯 set password=password("Egon@123");
二 Windows系統
2.1 安裝
#1、下載:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2、解壓 如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的資料夾移動到指定目錄,如:C:\mysql-5.7.16-winx64 #3、新增環境變數 【右鍵計算機】--》【屬性】--》【高階系統設定】--》【高階】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】 #4、初始化 mysqld --initialize-insecure #5、啟動MySQL服務 mysqld # 啟動MySQL服務 #6、啟動MySQL客戶端並連線MySQL服務 mysql -u root -p # 連線MySQL伺服器
2.2 將MySQL服務製作成windows系統服務
上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設定即可解決此問題: 注意:--install前,必須用mysql啟動命令的絕對路徑 # 製作MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --install # 移除MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --remove 註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令: # 啟動MySQL服務 net start mysql # 關閉MySQL服務 net stop mysql