、安裝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.cnf(在5.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服務已經生效,在2、3、4、5運行級別隨系統啟動而自動啟動,以后可以使用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、將mysql的bin目錄加入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