linux 源码安装mysql5.7_linux安装mysql5.7.27
一、卸載
mysql安裝有三種方式,包括二進制包安裝(Using Generic Binaries)、RPM包安裝、源碼安裝。一般是前兩種比較多
二、安裝
建議路徑設置按照寫的來
將下載的壓縮包復制到linux服務器/usr/local/路徑下(下載地址https://dev.mysql.com/downloads/mysql/,進去下載默認是最新的,找到Looking for previous GA versions?,點擊就可以找到以前的版本,Linux-Generic是通用版的意思)
1、進入壓縮包存放目錄
[root@localhost ~]# cd /usr/local
2、解壓壓縮包
[root@localhost local]# tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
3、修改文件夾名字
將解壓后的文件夾修改名字,文件夾名字改為mysql
4、檢查并創建用戶和用戶組
[root@localhost local]# cat /etc/group | grep mysql
[root@localhost local]# cat /etc/passwd |grep mysql
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -r -g mysql mysql
5、創建data文件夾
某個版本之后就沒有data文件夾了
[root@localhost local]mkdir /usr/local/mysql/data
6、授權目錄和用戶
(****重要****)忘記授權會出問題,em...,各種各樣的問題
[root@localhost /]# cd /usr/local/
[root@localhost local]# chown -R mysql:mysql mysql/
[root@localhost local]# chmod -R 755 mysql/
7、安裝并初始化(*****重要******)
執行下面之前去/etc/目錄下查看是否有my.cnf配置文件,如果有,刪除或者修改名字備份起來!不然會出現各種PID或者SOCK有關的問題
某個版本之后這個步驟是下面這樣,以前是mysql_install_db,datadir就是安裝路徑,basedir就是根目錄
[root@localhost local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
執行完上面之后,檢查是否有Error,有的話及時解決。
[root@localhost local]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
2019-07-18T07:38:20.300936Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-07-18T07:38:21.037889Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-07-18T07:38:21.124063Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-07-18T07:38:21.194242Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been start ed. Generating a new UUID: 0448b7a0-a92f-11e9-ac91-fa163e17d701.
2019-07-18T07:38:21.195622Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-07-18T07:38:21.196412Z 1 [Note] A temporary password is generated for root@localhost: n2ta1yWih9-/
最后一行會有默認生成的密碼,記下來
A temporary password is generated for root@localhost: n2ta1yWih9-/
8、復制啟動腳本到資源目錄
[root@localhost local]# cd mysql
[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
提示是否覆蓋的話,可能之前裝過沒刪除,輸入y覆蓋
9、增加mysqld服務控制腳本執行權限
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
10、將mysqld服務加入到系統服務
[root@localhost mysql]# chkconfig --add mysqld
11、檢查mysqld服務是否已經生效
[root@localhost mysql]# chkconfig --list mysqld
mysqld 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉
12、啟動mysql
[root@localhost mysql]# service mysqld start
顯示SUCCESS的話,到這里就已經啟動成功了
12-2、啟動mysql失敗
提示找不到mysql命令的話
[root@localhost mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin
13、登錄mysql
失敗的話看下面
[root@localhost mysql]# service mysqld start
Starting MySQL.2019-07-18T07:41:24.268830Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
The server quit without updating PID file (/var/lib/mysql/z[失敗]pid).
[root@localhost mysql]# mkdir /var/lib/mysql
[root@localhost mysql]# service mysqld start
Starting MySQL.The server quit without updating PID file (/[失敗]b/mysql/localhost.pid).
[root@localhost mysql]# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
13-2、登錄mysql失敗
失敗信息:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
[root@localhost mysql]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
然后返回13步重新執行
14、(在mysql命令行模式下)修改密碼
下面最后面的root就是密碼,修改完之后退出重新登錄一次試試,有些在修改密碼的時候執行下面的會報錯,可以參考https://blog.csdn.net/q258523454/article/details/84555847,或者百度一下,很容易解決
mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
mysql> flush privileges;
mysql> quit
[root@localhost mysql]# mysql -uroot -p
15、配置3306端口
開啟防火墻(如果以前已經安裝過mysql的,這個一般都已經設置好了,我的是新建的虛擬機,所以沒有設置)
配置方法:打開/etc/sysconfig/iptables文件,找到22端口(這個是默認配置好的),復制多一行在下面,把22改成3306就行,記住,不要復制到最后一行,有些竟然沒有iptables的文件?這是可以生成的,百度一下就行,有些防火墻文件不是這個,可能要先取消或者設置,之前百度過,忘了
當然下面這個步驟也可以用vim命令進行編輯
修改完保存之后執行命令行重啟防火墻
[root@localhost mysql] service iptables restart
有些Linux版本的重啟如下
[root@localhost mysql] systemctl restart iptables.service
16、測試連接
本地使用Navicat連接測試,填寫完點擊連接測試
顯示錯誤信息不允許連接1130 - Host '192.168.114.1' is not allowed to connect to this MySQL server
解決方法:(如果還沒登錄mysql,記得登錄先)
mysql> flush privileges;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql> flush privileges;
執行完再次連接測試
還是報錯1045 - Access denied for user 'root'@'192.168.114.1' (using password:YES),不過這次結果是密碼錯誤,原因是因為未授權,第一次啟動是這樣的,解決如下:
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root';
mysql> flush privileges;
再去連接測試就行了,到這里就已經安裝完畢,可以使用了
總結
以上是生活随笔為你收集整理的linux 源码安装mysql5.7_linux安装mysql5.7.27的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行卡活期可用有利息吗?利息是多少?
- 下一篇: giantantispywaremain