在centos7中安裝mysql5.7以上
在網上看到很多人都在usr/local目錄下進行安裝,本例項是在opt檔案下進行安裝,安裝mysql5.7以上的例項
將壓縮包放入opt檔案目錄下,前提是在root使用者下進行操作。
重新命名,重新命名解壓的檔名為mysql-5.7.22
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql-5.7.22
建立一個快捷方式,使用mysql指向mysql-5.7.22
ln -s mysql-5.7.22 mysql
新增使用者,可以使用groups mysql
檢視當前是否有使用者組
如果沒有使用者,則可以新增使用者
#新增使用者組
groupadd mysql
#新增使用者mysql 到使用者組mysql
useradd -g mysql mysql
新增完使用者之後,cd進入mysql中
在mysql目錄下建立資料夾,使用mkdir data
之後,choose own 更改擁有都為mysql
使用命令chown -R mysql:mysql ./
可以看到,從剛剛的兩排root變成了兩排mysql
之後執行命令./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
,執行完之後,會產生一個隨機密碼,提供後面更改密碼使用。可以複製進行儲存
將mysql/目錄下除了data/目錄的所有檔案,改回root使用者所有,使用命令chown -R root .
mysql使用者只需作為mysql-5.7.22/data/目錄下所有檔案的所有者,執行命令chown -R mysql data
複製檔案
cp support-files/mysql.server /etc/init.d/mysqld
之後到cd到init.d目錄下
cd /etc/init.d
進行許可權設定,chmod 755 /etc/init.d/mysqld
將opt/mysql/bin/my_print_defaults
檔案複製到 usr/bin
下面
修改啟動指令碼 vi /etc/init.d/mysqld
basedir=/opt/mysql-5.7.22/
datadir=/opt/mysql-5.7.22/data
port=3306
修改之後退出vi編輯器
加入環境變數,編輯 /etc/profile,這樣可以在任何地方用mysql命令了
使用命令vi /etc/profile
,在配置jdk的命令下面加入export PATH=$PATH:/usr/local/mysql-5.7.22/bin
退出vi編輯器,並且儲存
重新整理立即生效
source /etc/profile
修改mysql配置項,使用命令vi /etc/my.cnf
進行配置,將裡面全部內容刪除,加入以下程式碼
[mysqld]
basedir = /opt/mysql-5.7.22
datadir = /opt/mysql-5.7.22/data
socket = /tmp/mysql.sock
user = mysql
tmpdir = /tmp
symbolic-links=0
[mysqld_safe]
log-error = /opt/mysql-5.7.22/data/error.log
pid-file = /opt/mysql-5.7.22/data/mysql.pid
!includedir /etc/my.cnf.d
啟動mysql
service mysqld start
注意:在這裡如果發生錯了,可以刪除 /opt/mysql-5.7.22/data
下所有檔案,重新執行./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
,重新啟動mysql
/etc/init.d/mysqld restart
還有,如果在使用mysqld使用了其他人的檔案,會導致許可權不夠,或者如果mysqld檔案丟失,可以在執行一次cp support-files/mysql.server /etc/init.d/mysqld
進行復制生成,之後再設定許可權,chmod 755 /etc/init.d/mysqld
這樣做就可以了
執行完啟動,成功之後
進入mysql修改初始密碼,修改遠端連線的使用者許可權問題
輸入之前的隨機密碼 輸入密碼成功之後,
mysql -uroot -p
use mysql;
update user set password=password("root") where user="root";
如果出現Unknown column ‘password’ in 'field list’使用下面這種方式 或者
update user set authentication_string=password("root") where user="root";
flush privileges;
之後進行退出
exit;