Linux下安裝MySQL


、安裝MYSQL之前需要安裝JDK( https://www.cnblogs.com/yuezc/p/12102638.html)。

1.卸載系統自帶的Mariadb

打開Terminal/shell終端:

[root@localhost ~]# rpm -qa|grep mariadb  // 查詢出來已安裝的mariadb

[root@localhost ~]# rpm -e --nodeps 文件名  // 卸載mariadb,文件名為上述命令查詢出來的文件

2. 在etc目錄下的my.cnf文件

[root@localhost ~]# touch /etc/my.cnf5.7的版本中不存在此文件,需要創建它,因為這是mysql的配置文件

3. 執行以下命令來創建mysql用戶組

[root@localhost ~]# groupadd mysql

4. 執行以下命令來創建一個用戶名為mysql的用戶並加入mysql用戶組

[root@localhost ~]# useradd -g mysql mysql

一、安裝mysql。

1、准備好安裝的mysql,我所使用的的是 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz 版本。

下載地址:https://dev.mysql.com/downloads/mysql/

2、在本地(windows)上傳,使用FTP工具。記得上傳至root用戶下,如果再普通用戶下,請注意權限配置,可能會有無權限移動、復制以及解壓縮等。

3、在將壓縮包移動至想要安裝的位置,例如在/usr/local/mysql目錄下。

[root@localhost ~]# ls
anaconda-ks.cfg              Desktop    Downloads             jdk-7u80-linux-x64.tar.gz  mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz  Public     Videos
apache-tomcat-7.0.96.tar.gz  Documents  initial-setup-ks.cfg  Music                      Pictures                                    Templates
[root@localhost ~]# mv mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz  /usr/local/mysql
(mysql目錄並不存在,需要手動創建:mkdir mysql 如下操作)
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mkdir mysql

創建完成並完成移動后,再解壓壓縮包。如下“進入mysql目錄,再解壓GZ格式的文件”

[root@localhost local]# cd mysql
[root@localhost mysql]# tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
在查看,會有該目錄

  [root@localhost mysql]# ls
  mysql-5.7.27-linux-glibc2.12-x86_64

4、配置my.cnf文件,

授予my.cnf最大權限

[root@localhost ~]# chmod 664 /etc/my.cnf

如下:這些是我個人的配置。用戶是root,一般不推薦使用默認設置為mysql

[client]
socket=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.sock
[mysqld]
port=3306
user=root
basedir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/
datadir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data
socket=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.sock
pid-file=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data/mysqld.pid
log-error=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.err
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

配置完成后。運行該命令:source  /etc/my.cnf   確保生效。

上述配置文件,里面的基本都是安裝的文件的物理路徑。注意:datadir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data 這個里面的data是不存在的,需要在這個的目錄下自己創建。

5、給mysql文件給予去權限:

[root@localhost local]# ls
bin  etc  games  include  jdk  kettle  lib  lib64  libexec  mysql  sbin  share  src  tomcat
[root@localhost local]# chmod 765 mysql

6、然后進入到 :/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/ 目錄,更改mysql目錄下所有的目錄及文件夾所屬的用戶組和用戶:

[root@localhost /]# chown -R root:root /usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64 (因為我在配置文件中,設置的user=root)

7、編譯安裝並初始化mysql,務必記住初始化輸出日志末尾的密碼

如果不進行此步驟,會在啟動時報錯:

2020-08-05T07:26:53.324788Z 0 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Table 'mysql.plugin' doesn't exist

一般找錯誤需要到錯誤日志中查看,而如何讓錯誤出現在指定的日志文件,需要在my.cnf中配置,且在安裝目錄下創建此文件mysql.err

[root@localhost mysql5727]# cat /etc/my.cnf 
[client]
socket=/usr/local/mysql5727/mysql.sock
[mysqld]
port=3306
user=root
basedir=/usr/local/mysql5727
datadir=/usr/local/mysql5727/data
socket=/usr/local/mysql5727/mysql.sock
pid-file=/usr/local/mysql5727/data/mysqld.pid
log-error=/usr/local/mysql5727/mysql.err
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
default_password_lifetime=0

編譯安裝並初始化mysql的命令:

[root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# cd bin
[root@localhost bin]# ./mysqld --defaults-file=/etc/my.cnf  --basedir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/  --datadir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data --user=root --initialize

如果未出現初始密碼,但后續可以正常啟動mysql,在這一步無需擔心。

二、設置開機自啟動服務控制腳本:

1、復制啟動腳本到資源目錄 

[root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

2、增加mysqld服務控制腳本執行權限

[root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# chmod +x /etc/rc.d/init.d/mysqld

3、將mysqld服務加入到系統服務

[root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# chkconfig --add mysqld

4、檢查mysqld服務是否已經生效

 [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# chkconfig --list mysqld

命令輸出類似下面的結果:

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

表明mysqld服務已經生效,在2345運行級別隨系統啟動而自動啟動,以后可以使用service命令控制mysql的啟動和停止

命令為:service mysqld start和service mysqld stop

5、啟動mysqld

 [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# service mysqld start

啟動可能很會報錯。請注意。

6、將mysqlbin目錄加入PATH環境變量,編輯 ~/.bash_profile文件

[root@localhost mysql]# vim ~/.bash_profile

在文件最后添加如下信息:

export PATH=$PATH:/usr/local/mysql/bin

然后按ESC

繼續 shift鍵加冒號打出來=>  

接下來輸入wq回車即可

執行下面的命令是修改的內容立即生效:

[root@localhost mysql]# source ~/.bash_profile

7、以root賬戶登錄mysql,默認是沒有密碼的

[root@localhost mysql]# mysql -uroot -p

要輸入密碼的時候直接回車即可。

如果不成功或之前沒出現密碼,則需要單獨設置操作一下:

1、初始密碼在/var/log/mysqld.log這個文件里
2、輸入命令:grep 'temporary password' /var/log/mysqld.log,可以直接獲取密碼。
(注:密碼為冒號后面的所有字符!)
如果想要更換初始密碼,可以按照下面的操作。
在/etc/my.cnf中加入如下內容:
在[mysqld]下添加skip-grant-tables,然后保存並退出。這句意思其實是,無密碼登錄。
然后重啟mysql服務
systemctl restart mysqld
a、重啟以后,執行mysql命令進入mysql命令行
b、修改root用戶密碼
MySQL> update mysql.user set authentication_string=password('123456') where user='root';
MySQL> flush privileges;
MySQL> exit;
c、最后把/etc/my.cnf中的skip-grant-tables注釋掉,然后重啟mysql,即:service mysqld restart

8、設置root賬戶密碼為root(也可以修改成你要的密碼)

mysql>use mysql;
mysql> update
mysql.user set authentication_string=password('sdrs3721') where user='root';
mysql>flush privileges;

這個成功之后,基本就完成了mysql的安裝。但還有其他的需要設置

9、開啟遠程連接:

mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;

10、如果再遠程連接數據庫是報10038的錯誤,則需要將數據庫的端口配置在防火牆中:https://www.cnblogs.com/yuezc/p/12518943.html

11、如果在登錄成功后,報如下錯誤:

mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

需要修改密碼,方式如下:

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM