在centos上安裝mysql着實費了我一番功夫。一番探索後我成功的在4臺centos虛機上安裝上了mysql,其中三臺用yum的方式進行安裝,一臺用rpm的方式進行安裝。現做記錄如下:
0:檢查centos是否有安裝mysql和完全卸載mysql
-
查看MySQL是否安裝:
yum list installed mysql* 或者: rpm -qa | grep -i mysql
-
卸載mysql
yum remove mysql mysql-server mysql-libs compat-mysql51(你所安裝的mysql) rm -rf /var/lib/mysql rm /etc/my.cnf
一:rpm方式安裝
軟件下載:上mysql的官網下載對應的版本軟件;我下載的是mysql-8.0.12-linux-glibc2.12-x86_64.tar這個版本。
- 解壓到你預裝mysql的路徑:tar -xJvf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz -C /opt/app
-
建目錄授權等
groupadd mysql useradd mysql mkdir -p /opt/dataSet/mysql #(創建一個用於存放數據的文件夾) chown -R mysql:mysql /opt/dataSet/mysql/ chmod -R 775 /opt/dataSet/mysql/
- 配置文件/etc/my.cof如下
[mysqld] server-id = 1 port = 3306 mysqlx_port = 33060 mysqlx_socket = /tmp/mysqlx.sock basedir = /opt/app/mysql #(我的軟件安裝在這裏) datadir = /opt/dataSet/mysql #(我的數據放在這個文件夾) socket = /tmp/mysql.sock pid-file = /tmp/mysqld.pid log-error = /opt/dataSet/mysql/error.log #(對應修改) slow-query-log = 1 slow-query-log-file = slow.log long_query_time = 0.2 log-bin = bin.log relay-log = relay.log binlog_format =ROW relay_log_recovery = 1 #character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect ='SET NAMES utf8mb4' innodb_buffer_pool_size = 1G join_buffer_size = 128M sort_buffer_size = 2M read_rnd_buffer_size = 2M log_timestamps = SYSTEM lower_case_table_names = 1 default-authentication-plugin =mysql_native_password #(設置爲可遠程登錄)
-
初始化數據庫:
/opt/app/mysql/bin/mysqld --user=mysql --basedir=/opt/app/mysql --datadir=/opt/dataSet/mysql --initialize-insecure
官方推薦使用--initialize,會在錯誤日誌中生成難以輸入的臨時密碼,我這裏使用的免密碼的方式
cat /opt/dataSet/mysql/error.log | grep -i password
-
設置啓動文件和環境變量:
cp /opt/app/mysql/support-files/mysql.server /etc/init.d/mysql
-
--啓動數據庫:
/etc/init.d/mysql start
vim /etc/profile.d/mysql.sh cat /etc/profile.d/mysql.sh export PATH=$PATH:/opt/dataSet/mysql/bin
使得環境變量生效:
source /etc/profile.d/mysql.sh
-
安裝完畢,查看mysql版本信息:
mysqld --version
- 登錄mysql
/opt/app/mysql/bin/mysql -p -S /tmp/mysql.sock 或者: mysql -uroot -p
- 設置navicat可遠程登錄(以下操作皆在mysql中)
在設置之前先把免密登錄mysql改成自己設置的密碼。
下面設置爲“123456”set global validate_password.policy=0; set global validate_password.length=1; alter user user() identified by '123456';
設置遠程連接
use mysql; alter user 'root'@'localhost' identified with mysql_native_password by '123456'; flush privileges; update user set host='%' where user='root'; flush privileges;
安裝成功連接成功:
-
設置mysql快捷登錄
vim .bashrc
在文件中添加
alias mysql='mysql -uroot -p123456'
使配置文件生效
source .bashrc
這樣就可以直接在指令行中打mysql登錄了
二:yum方式安裝
找了許久,發現照着博客能成功安裝的有yum 連接。
對於一般的人照着上面那個博客也夠用了,但是因爲上述yum安裝,數據的存儲路徑默認爲/var/lib/mysql。可是我所用的虛機磁盤主要掛在/opt路徑,考慮到以後會在mysql中存儲大量的數據,所以經過一番不易的探索,把mysql的數據存儲路徑換在了/opt/dataSet路徑。具體步驟如下所示:
- 把/var/lib/mysql 整個目錄複製到/opt/dataSet(把/var/lib/mysql整個目錄保持權限複製到/opt/dataSet)
cp -arp /var/lib/mysql /opt/dataSet/
- 修改配置文件 my.cnf
datadir=/opt/dataSet/mysql #(新的數據存儲路徑) socket=/opt/dataSet/mysql/mysql.sock #(#修改socket參數) log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid default_authentication_plugin=mysql_native_password
-
修改MySQL啓動腳本/etc/init.d/mysql
datadir = /opt/dataSet/mysql ln -s /opt/dataSet/mysql/mysql.sock /var/lib/mysql/mysql.sock
-
做一個mysql.sock 鏈接:
ln -sf /opt/dataSet/mysql/mysql.sock /var/lib/mysql/mysql.sock
-
檢查相關目錄的屬主和權限。
chown -R mysql:mysql /opt/dataSet/mysql/
-
重啓mysql
/etc/init.d/mysql start 或者 service mysqld start
參考博客:rmp安裝、yum安裝、更換mysql數據存儲路徑1、更換mysql數據存儲路徑2