軟件統一放在/usr/software
下 解壓後放在單獨的文件夾下/usr/local/java
/usr/local/mysql
其中:#
爲Linux命令,mysql
則是mysql下的命令
軟件統一放在/usr/software
下 解壓後放在單獨的文件夾下/usr/local/java
/usr/local/mysql
安裝包下載mysql-5.7.24-linux-glibc2.12-x86_64.tar
網址https://dev.mysql.com/downloads/mysql/5.7.html#downloads
1. 安裝依賴
# yum install -y cmake make gcc gcc-c++ libaio ncurses ncurses-devel
|
2. 解壓文件
壓縮包上傳到虛擬機/usr/software目錄下
,進入這個目錄
解壓文件
# tar zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
|
將解壓後的文件移動到/usr/local/mysql
# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
|
3. 添加用戶和賦權
1.添加用戶和用戶組
給mysql賦權的用戶必須對當前目錄具有讀寫權限,但是一般不用root賬戶,所以創建一個用戶mysql。
執行命令:創建用戶組mysqlgroupadd mysql`
創建用戶也叫mysql
// 命令中第一個mysql是用戶,第二個mysql是用戶組。
# useradd -r -g mysql mysql
|
2.給用戶賦權限
一定保證當前是在/usr/local/mysql
目錄下
給用戶組賦權限
//mysql是用戶組名
# chgrp -R mysql.
|
給用戶賦權限
//這個mysql是用戶名
# chown -R mysql.
|
4. 數據庫初始化
安裝數據庫 :
// 這裏會生成臨時密碼,後邊有用
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
|
執行以下命令創建RSA private key :
# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
|
5. 配置my.cnf
內容如下:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不區分大小寫 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 這個簡單來說就是sql語句是否嚴格)
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
|
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# vim /etc/init.d/mysqld
|
添加以下內容,在46行
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
|
6. 修改密碼
啓動mysql
加入開機起動
進入客戶端
登錄修改密碼
# mysql -uroot -p 上面初始化時的密碼
|
如果出現錯誤 需要添加軟連接
# ln -s /usr/local/mysql/bin/mysql /usr/bin
|
如果出現Access denied for user 'root'@'localhost' (using password: YES)
應該是密碼錯了,直接強行修改密碼好了。先停掉mysql.
然後修改配置文件
在[mysqld]後面任意一行添加skip-grant-tables
用來跳過密碼驗證的過程
接下來我們需要重啓MySQL
# /etc/init.d/mysqld restart
|
重啓之後輸入命令mysql
即可進入mysql了,然後開始修改密碼。
mysql> use mysql;
# 這裏修改密碼的命令在5.7以上和5.7以下是不同的 需要注意
mysql> update user set authentication_string=passworD("你的密碼") where user='root';
flush privileges;
mysql> quit
|
完成後可以把配置文件中的跳過密碼驗證去掉。
然後就可以正常使用啦。
7. 外部訪問
首先進入mysql,
接着創建遠程連接 MySQL 的用戶 mysql命令
-- 創建用戶、密碼及權限範圍 第一個 roo t爲用戶名 @後爲適用的主機,‘%’表示所有電腦都可以訪問連接,第二個 root 爲密碼
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'root' WITH GRANT OPTION;
-- 立即生效
mysql> flush privileges;
|
查看數據庫用戶:
-- 使用 mysql 庫
mysql> use mysql;
-- 查看用戶
mysql> SELECT DISTINCT CONCAT('User: [', user, '''@''', host, '];') AS USER_HOST FROM user;
-- 查看端口
mysql> show global variables like 'port';
--mysql 默認端口爲3306
|
解決防火牆問題
防火牆默認只開放了22端口,要訪問數據庫要麼關掉防火牆要麼修改配置文件,開放3306端口
修改防火牆配置: 命令
# vim /etc/sysconfig/iptables
|
添加以下內容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
|
然後重啓防火牆
# service iptables restart
|
最後查看服務器IP
到這裏應該就可以通過IP和端口號遠程連接服務器上的MySQL了。
8. 問題
mysql中執行命令出現以下錯誤:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
|
解決: 修改用戶密碼
mysql> alter user 'root'@'localhost' identified by '你的密碼';
|
參考
https://blog.csdn.net/z13615480737/article/details/80019881
https://www.cnblogs.com/goodcheap/p/7103049.html