linux下安裝mysql-5.7.27詳細步驟及問題解決

一、清理老的mysql

(1)卸載已有的mysql
   查找以前是否裝有mysql命令:
    rpm -qa|grep -i mysql
   停止mysql服務,卸載之前安裝的mysql
    rpm -ev 包名
   如果卸載過程中報依賴錯誤,直接在卸載命名後面加參數 --nodeps
     rpm -ev 包名 --nodeps
(2)查找之前老版本mysql的文件並刪除老版本mysql的文件
  1  find / -name mysql
  2  # 出來一堆列表
  3  # 一個一個刪除就ok

二、安裝前的準備

(1)安裝mysql之前需要確保系統中有libaio依賴
  1  yum search libaio
  2  yum install libaio
(2)下載安裝包(tar.gz的包,非rpm和yum)
  1  cd /usr/
  2  mkdir database
  3  cd database
  4  wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz

官網一般都很慢,所以使用網易國內鏡像地址: http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
(3)解壓
  1  tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
  
  2  mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql5.7 #重命名爲mysql5.7

三、安裝

(1)添加用戶和組
  1  #添加用戶組
  2  groupadd mysql
  3  #添加用戶mysql 到用戶組mysql(使用-r參數表示mysql用戶是一個系統用戶,不能登錄)
  4  useradd -r -g mysql mysql
  5  #添加完用下面命令測試,能看到mysql用戶的信息
  6  id mysql
(2)手動創建MySQL data目錄
  1  cd /usr/database/mysql5.7/
  2  mkdir data
(3)目錄權限設置
  1  將mysql及其下所有的目錄所有者和組均設爲mysql
  2  chown -R mysql:mysql /usr/database/mysql5.7/
  3  查看是否設置成功,執行下面命令,可以看到文件的所有者和組都變成了mysql
  4  cd /usr/database/
  5  ll
  6  結果中出現:drwxr-xr-x 10 mysql mysql 4096 Jul 3 13:57 mysql5.7

(4)配置my.cnf文件
此文件非常重要,初始化之前要把此文件放到 /etc 目錄下
  1  rm -rf /etc/my.cnf
  2  vim /etc/my.cnf
  3  #此文件內容如下(路徑根據自己的實際情況):

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8mb4

[mysqld]
init-connect='SET NAMES utf8mb4'
basedir=/usr/database/mysql5.7       #根據自己的安裝目錄填寫 
datadir=/usr/database/mysql5.7/data #根據自己的mysql數據目錄填寫
socket=/tmp/mysql.sock
max_connections=200 # 允許最大連接數
character-set-server=utf8mb4 # 服務端使用的字符集默認爲8比特編碼的latin1字符集
default-storage-engine=INNODB # 創建新表時將使用的默認存儲引擎

#skip-grant-tables
#此行忘記密碼修改用的 修改時再啓動(可以跳過密碼驗證)

[mysql]  
default-character-set = utf8mb4

(5)初始化mysql
  1  /usr/database/mysql5.7/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/database/mysql5.7 --datadir=/usr/database/mysql5.7/data
  2  #注意:mysqld --initialize-insecure初始化後的mysql是沒有密碼的
  3  #重新修改下各個目錄的權限
  4  chown -R root:root /usr/database/mysql5.7/ #把安裝目錄的目錄的權限所有者改爲root
  5  chown -R mysql:mysql /usr/database/mysql5.7/data/ #把data目錄的權限所有者改爲mysql

這裏容易出問題的地方:

可能初始化會報錯 ,
例如 bin/mysqld: error while loading shared libraries: libnuma.so.1: 安裝mysql
解決辦法: yum -y install numactl 輸入這條命令即可
(如果安裝mysql出現了以上的報錯信息.這是卻少numactl這個時候如果是Centos就yum -y install numactl就可以解決這個問題了. ubuntu的就sudo apt-get install numactl就可以解決這個問題了)
來源鏈接:https://blog.csdn.net/liukai6/article/details/78323364

(6)啓動mysql
  1  /usr/database/mysql5.7/bin/mysqld_safe --user=mysql &
(7)修改密碼
  1  cd /usr/database/mysql5.7/bin/
  2  ./mysql -u root -p # 默認沒有密碼,直接敲回車就可以
  3  use mysql;
  4  update user set authentication_string=password('這裏填你設置的密碼') where user='root';
  5  flush privileges;
  6  exit;
(8)測試登錄
  1  cd /usr/database/mysql5.7/bin/
  2  ./mysql mysql -u root -p
  3  輸入密碼後,應該就連接上了
  4  show databases;
  5  exit; #退出
(9)copy啓動腳本並將其添加到服務且設置爲開機啓動
  1  #mysql啓動腳本爲:/usr/database/mysql5.7/support-files/mysql.server
  2  cp /usr/database/mysql5.7/support-files/mysql.server /etc/init.d/mysql
  3  #添加服務
  4  chkconfig --add mysql
  5  # 顯示服務列表
  6  chkconfig --list
  7  # 開機啓動
  8  chkconfig --level 345 mysql on
  9  # 測試添加的服務是否能用
  10  service mysql status #查看狀態
  11  service mysql start #啓動mysql服務
  12  service mysql stop #停止mysql服務
  13  service mysql restart #重啓mysql服務

四、設置外網可以訪問

1  在mysql的bin目錄下執行:mysql -uroot -p密碼 登陸到數據庫
  如果進入不了數據庫,出現 -bash: mysql: command not found 報錯.解決辦法 查看下方的相關說明(3)
  2  執行:use mysql;
  3  執行:select host,user from user;
  4  可以看到user爲root,host爲localhost的話,說明mysql只允許本機連接,那麼外網,本地軟件客戶端就無法連接了。
  5  調整方法:
  6  執行:update user set host='%' where user ='root';
  7  執行刷新:flush privileges;
  8  OK!現在可以訪問了!
  9  如果還訪問不了,那可能是防火牆問題,修改下防火牆就ok,修改方法這裏就不提了,網上很多資料

五、相關說明

(1)mysql服務的啓動和停止命令
  1  service mysql status #查看狀態
  2  service mysql start #啓動mysql服務
  3  service mysql stop #停止mysql服務
  4  service mysql restart #重啓mysql服務
(2)怎麼在Linux中登錄mysql
  1  #進入mysql安裝目錄的bin目錄,然後輸入以下命令
  2  ./mysql -u root -p
  不行就 mysql -u root -p
  3  #然後輸入密碼就登錄成功
  4  exit;  #退出mysql
  
 (3) 如果進入數據庫出現 -bash: mysql: command not found 報錯
  # mysql -u root
-bash: mysql: command not found

原因:這是由於系統默認會查找/usr/bin下的命令,如果這個命令不在這個目錄下,當然會找不到命令,我們需要做的就是映射一個鏈接到/usr/bin目錄下,相當於建立一個鏈接文件。
首先得知道mysql命令或mysqladmin命令的完整路徑,比如mysql的路徑是:/usr/database/mysql5.7,我們則可以這樣執行命令:

ln -s /usr/database/mysql5.7/bin/mysql /usr/bin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章