centos7下使用mysql離線安裝包安裝mysql5.7

服務器環境:html

centos7 x64node

須要安裝mysql5.7+mysql

1、卸載CentOS7系統自帶mariadb

# 查看系統自帶的Mariadb
[root@CDH-141 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
# 卸載系統自帶的Mariadb
[root@CDH-141 ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
# 刪除etc目錄下的my.cnf
[root@CDH-141 ~]# rm /etc/my.cnf

2、檢查mysql是否存在

# 檢查mysql是否存在
[root@CDH-141 ~]# rpm -qa | grep mysql
[root@CDH-141 ~]# 

3、查看用戶和組是否存在

1)檢查mysql組合用戶是否存在linux

# 檢查mysql組和用戶是否存在,如無則建立
[root@CDH-141 ~]# cat /etc/group | grep mysql
[root@CDH-141 ~]# cat /etc/passwd | grep mysql 

# 查詢所有用戶(只是作記錄,不必執行)sql

[root@CDH-141 ~]# cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F ":" '{print $1 "|" $3 "1" $4}' | more
root|010
sync|510
flume|9921989
hdfs|9911988
zookeeper|9891986
llama|9881985
httpfs|9871984
mapred|9861983
sqoop|9851982
yarn|9841981
kms|9831980
hive|9821979
oozie|9801977
hbase|9781975
impala|9761973
hue|9741971
wlaqzc2018|100111001
[root@CDH-141 mysql]# 

2)若不存在,則建立mysql組和用戶bootstrap

# 建立mysql用戶組
[root@CDH-141 ~]# groupadd mysql
# 建立一個用戶名爲mysql的用戶,並加入mysql用戶組
[root@CDH-141 ~]# useradd -g mysql mysql
# 制定password 爲111111
[root@CDH-141 ~]# passwd mysql
Changing password for user mysql.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.

4、下載mysql離線安裝包tar文件

官網下載地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloadsvim

版本選擇,能夠選擇一下兩種方式:centos

1)使用Red Hat Enterprise Linux
Select Version:5.7.25
Select Operating System:Red Hat Enterprise Linux / Oracle Linux
Select OS Version:Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)
列表中下載:
Compressed TAR Archive:(mysql-5.7.25-el7-x86_64.tar.gz)
2)使用Linux - Generic
Select Version:5.7.25
Select Operating System:Linux - Generic
Select OS Version:Linux - Generic (glibc 2.12) (x86, 64-bit)
列表中下載:
Compressed TAR Archive:(mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz)【本文中使用的是這個版本】
注意:上邊兩種方式找mysql離線安裝包的方式均可以。服務器

5、上傳第四步下載的mysql TAR包

# 進入/usr/local/文件夾
[root@CDH-141 ~]# cd /usr/local/
# 上傳mysql TAR包
[root@CDH-141 local]# rz
# 解壓mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
[root@CDH-141 local]# ls
bin  full-path-to-mysql-VERSION-OS  include  lib64    mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz  share
etc  games                          lib      libexec  sbin                                 src
[root@CDH-141 local]# tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
mysql-5.7.25-lin
...
mysql-5.7.25-linux-glibc2.12-x86_64/share/install_rewriter.sql
mysql-5.7.25-linux-glibc2.12-x86_64/share/uninstall_rewriter.sql
mysql-5.7.25-linux-glibc2.12-x86_64/support-files/magic
mysql-5.7.25-linux-glibc2.12-x86_64/support-files/mysql.server
mysql-5.7.25-linux-glibc2.12-x86_64/docs/INFO_BIN
mysql-5.7.25-linux-glibc2.12-x86_64/docs/INFO_SRC
[root@CDH-141 local]# ls
bin  full-path-to-mysql-VERSION-OS  include  lib64    mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz  share
etc  games                          lib      libexec  mysql-5.7.25-linux-glibc2.12-x86_64  sbin                                        src
# 進入/usr/local下,修改成mysql
[root@CDH-141 local]# mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql
[root@CDH-141 local]# ls
bin  etc  full-path-to-mysql-VERSION-OS  games  include  lib  lib64  libexec  mysql  mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz  sbin  share  src

6、更改所屬的組和用戶

# 更改所屬的組和用戶
[root@CDH-141 ~]# cd /usr/local/
[root@CDH-141 local]# chown -R mysql mysql/
[root@CDH-141 local]# chgrp -R mysql mysql/
[root@CDH-141 local]# cd mysql/
[root@CDH-141 mysql]# mkdir data
[root@CDH-141 mysql]# chown -R mysql:mysql data

7、在/etc下建立my.cnf文件

# 進入/usr/local/mysql文件夾下
[root@CDH-141 ~]# cd /usr/local/mysql
# 建立my.cnf文件
[root@CDH-141 mysql]# touch my.cnf #或者cd ''>my.conf
# 編輯my.cnf
[root@CDH-141 mysql]# vi my.conf
[mysql]
socket=/var/lib/mysql/mysql.sock
# set mysql client default chararter
default-character-set=utf8

[mysqld]
socket=/var/lib/mysql/mysql.sock
# set mysql server port  
port = 3323 #默認是3306,這裏發現3306已經被佔用,所以防止這種狀況發生,能夠避免使用3306mysql默認端口
# set mysql install base dir
basedir=/usr/local/mysql
# set the data store dir
datadir=/usr/local/mysql/data
# set the number of allow max connnection
max_connections=200
# set server charactre default encoding
character-set-server=utf8
# the storage engine
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
explicit_defaults_for_timestamp=true

[mysql.server]
user=mysql
basedir=/usr/local/mysql
[root@CDH-141 mysql]# 

8、進入mysql文件夾,並安裝mysql

# 進入mysql
[root@CDH-141 local]# cd /usr/local/mysql
# 安裝mysql
[root@CDH-141 mysql]# bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
2019-03-08 18:11:07 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2019-03-08 18:11:24 [WARNING] The bootstrap log isn't empty:
2019-03-08 18:11:24 [WARNING] 2019-03-08T10:11:07.208602Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead

設置文件及目錄權限:session

[root@CDH-141 mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld
[root@CDH-141 mysql]# chown 777 my.cnf
[root@CDH-141 mysql]# ls
bin  COPYING  data  docs  include  lib  man  my.cnf  README  share  support-files
[root@CDH-141 mysql]# ls -l
total 60
drwxr-xr-x  2 root  root   4096 Mar  8 15:56 bin
-rw-r--r--  1  7161 31415 17987 Dec 21 18:39 COPYING
drwxr-x---  5 mysql mysql  4096 Mar  8 16:21 data
drwxr-xr-x  2 root  root   4096 Mar  8 15:56 docs
drwxr-xr-x  3 root  root   4096 Mar  8 15:56 include
drwxr-xr-x  5 root  root   4096 Mar  8 15:56 lib
drwxr-xr-x  4 root  root   4096 Mar  8 15:56 man
-rw-r--r--  1   777 root    516 Mar  8 16:19 my.cnf
-rw-r--r--  1  7161 31415  2478 Dec 21 18:39 README
drwxr-xr-x 28 root  root   4096 Mar  8 15:56 share
drwxr-xr-x  2 root  root   4096 Mar  8 15:56 support-files
[root@CDH-141 mysql]# chmod +x /etc/init.d/mysqld
[root@CDH-141 mysql]#
[root@CDH-141 mysql]# mkdir data
[root@CDH-141 mysql]#
[root@CDH-141 mysql]# chown -R mysql:mysql data
[root@CDH-141 mysql]# 

9、啓動mysql

# 啓動mysql
[root@CDH-141 mysql]# /etc/init.d/mysqld restart
MySQL server PID file could not be found![FAILED]
Starting MySQL.Logging to '/usr/local/mysql/data/CDH-141.err'.
..The server quit without updating PID file (/usr/local/mysql/data/CDH-141.pid).[FAILED]
[root@CDH-141 mysql]# 

出現錯誤,解決方案以下:

#找到是否已經有進程佔用
[root@CDH-141 mysql]# ps aux|grep mysql
root     32483  0.0  0.0 113252  1620 pts/0    S    18:04   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/CDH-141.pid
mysql    32684  0.1  0.1 1119892 178224 pts/0  Sl   18:04   0: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=CDH-141.err --pid-file=/usr/local/mysql/data/CDH-141.pid --port=3323
root     35137  0.0  0.0 112648   944 pts/0    S+   18:12   0:00 grep --color=auto mysql

#關閉進程
[root@CDH-141 mysql]# kill -9 32684
[root@CDH-141 mysql]# /usr/local/mysql/bin/mysqld_safe: line 198: 32684 Killed                  nohup /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=CDH-141.err --pid-file=/usr/local/mysql/data/CDH-141.pid --port=3323 < /dev/null > /dev/null 2>&1
#確認是否還佔用
[root@CDH-141 mysql]#  ps aux|grep mysql
root     35501  0.0  0.0 112644   948 pts/0    S+   18:13   0:00 grep --color=auto mysql
[root@CDH-141 mysql]# /etc/init.d/mysqld restart
MySQL server PID file could not be found![FAILED]
Starting MySQL..[  OK  ]
[root@CDH-141 mysql]#

# 重啓mysql
[root@CDH-141 mysql]# /etc/init.d/mysqld restart
Shutting down MySQL..[  OK  ]
Starting MySQL..[  OK  ]
[root@CDH-141 mysql]# 

10、設置開機啓動

#設置開機啓動
[root@CDH-141 mysql]# chkconfig --level 35 mysqld on
[root@CDH-141 mysql]# chkconfig --list mysqld

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]'.

mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@CDH-141 mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@CDH-141 mysql]# chkconfig --add mysqld
[root@CDH-141 mysql]# chkconfig --list mysqld

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]'.

mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@CDH-141 mysql]# service mysqld status
MySQL running (26122)[  OK  ]
[root@CDH-141 mysql]# 

11、修改配置文件

# 進入/etc/profile文件夾
[root@CDH-141 mysql]# vim /etc/profile
修改/etc/profile,在最後添加以下內容
# 修改/etc/profile文件
#set mysql environment
export PATH=$PATH:/usr/local/mysql/bin
# 使文件生效
[root@CDH-141 mysql]# source /etc/profile

12、得到mysql初始密碼

 1)得到mysql初始密碼

[root@CDH-141 mysql]#  cat /root/.mysql_secret  
# Password set for user 'root@localhost' at 2019-03-08 17:40:42
poc3u0mO_luv
[root@CDH-141 mysql]# 

2)修改密碼

[root@CDH-141 mysql]# mysql -uroot -p
Enter password: #此處填寫上邊獲取到的初始密碼‘poc3u0mO_luv’
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>  set PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

3)驗證新密碼是否登陸成功:

[root@CDH-141 mysql]# mysql -uroot -p
Enter password: #此處輸入新密碼‘123456’
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.25 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show tables;
ERROR 1046 (3D000): No database selected
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> 

十3、添加遠程訪問權限

# 添加遠程訪問權限
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select host,user from user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| %         | root          |
| localhost | mysql.session |
| localhost | mysql.sys     |
+-----------+---------------+
3 rows in set (0.00 sec)

mysql> 

十4、重啓mysql生效

# 重啓mysql
[root@CDH-141 mysql]# /etc/init.d/mysqld restart
Shutting down MySQL..[  OK  ]
Starting MySQL..[  OK  ]
[root@CDH-141 mysql]# 

   
參考《CentOS7.4安裝配置mysql5.7 TAR免安裝版

相關文章
相關標籤/搜索