考慮到多數正式環境的服務器是無法連接互聯網的,因此,這裏使用的是離線安裝的方式。
1 清理以前Mysql版本
- 清理以前版本,沒有就拉倒
2 安裝libaio library
官網說,Mysql依賴這個庫,沒有的話,後面會報錯。
- yum (此處不應該出現,因爲本篇是Debian10的安裝)
shell> yum search libaio # search for info
shell> yum install libaio # install library
- apt
shell> apt-cache search libaio # search for info
shell> apt-get install libaio1 # install library,注意這個1
3 安裝命令
3.1 創建mysql用戶組
shell> groupadd mysql # 添加一個Mysql的組
3.2 創建mysql用戶,並將其添加到mysql用戶組裏面
shell> useradd -r -g mysql -s /bin/false
這個
useradd -r -g mysql -s /bin/false
有點不太好懂說簡單一點就是不讓mysql用戶有登陸系統的權限
# 解壓,一般是/usr/local。也可以自己選,我這裏自己選的一個地方
shell> mv mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz /home/pythonbug/app/Mysql
shell> cd /home/pythonbug/app/Mysql
shell> tar -zxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
# 解壓出來的名字有點長,搞個符號鏈接簡化一下
shell> ln -s mysql-5.7.28-linux-glibc2.12-x86_64/ mysql5.7
shell> cd mysql5.7/
# 下面這玩意目錄也沒看出來有啥用,反正官網這麼做的,好像是限制導入導出
shell> mkdir mysql-files
shell> sudo chown mysql:mysql mysql-files/
shell> sudo chmod 750 mysql-files/
# 初始化數據目錄,結果報錯
shell> bin/mysqld --initialize --user=mysql
# libnuma.so.1: cannot open shared object file:
# 安裝一下,我這邊是基於Debian的
shell> sudo apt-get install libnuma-dev
# 假如你這邊是跟我一樣自己選的一個位置安裝的Mysql,而不是/usr/local/mysql的話。還是會報錯,解決的辦法就是直接指定你安裝的目錄
shell> bin/mysqld --initialize --user=mysql --basedir=/home/pythonbug/app/mysql5.7 --datadir=/home/pythonbug/app/Mysql/mysql5.7_data
# 當然了,也支持配置文件的方式
shell> mkdir etc/
shell> cd etc/
shell> vim my.cnf
# my.cnf內容如下
[mysqld]
basedir=/home/pythonbug/app/Mysql/mysql5.7
datadir=/home/pythonbug/app/Mysql/mysql5.7_data
# 通過配置文件初始化
sudo bin/mysqld --defaults-file=/home/pythonbug/app/Mysql/mysql5.7/etc/my.cnf --initialize --user=mysql
# 注意,前面說過,初始化命令可以隨便執行。但是當指定了datadir之後,如果再執行初始化命令,就會報錯,提示datadir已經不爲空了,所以這裏需要注意一下。所以,這裏應該是,如果是已經執行過指定了datadir的命令的話。下一次執行的初始化的命令時候就不需要再帶着了。如果帶着的話,它就認爲你是要指定一個新的datadir,那麼新的datadir目錄應該是空的纔對。
# 注意,成功之後。這裏會給一個隨機密碼,下面是要用到的
# 設置一下環境變量,把mysql5.7/bin添加到環境變量中
# 此處環境變量的添加不再贅述
shell> source ~/.profile
shell> mysql -u root -p
# 報錯
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
# 裝一下
shell> sudo apt-get install libncurses5
# 再來登陸
shell> mysql -u root -p
# 繼續報錯
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
# 查閱資料後得知,Mysql的服務沒起來
shell> ps -ef|grep mysql
[out] 啥也沒返回
shell> cd mysql5.7/support-files
# 由於我們這裏是自己指定的datadir,basedir,所以我們需要修改一下mysql.server文件
shell> vim mysql.server
# 找到
basedir=
datadir=
# 直接把自己的路徑填上去就行,如果你用的默認的,這裏就不需要修改。
# 啓動Mysql服務
shell> sudo ./mysql.server start
shell> mysql -u root -p
# 終於特麼的登陸上去了
# 重新修改一下密碼
shell> ALTER USER 'root'@'localhost' IDENTIFIED BY '5201314'
4 遠程連接
# 先查一下端口號
mysql> show variables like 'port';
# 安全起見,創建一個新用戶用於遠程登陸
mysql> create user 'xiaoming'@'%';
# 刷新一下權限
mysql> flush privileges;
# 注意,%表示任意主機,localhost表示只能從server所在的本機登陸
# 登陸成功,由於對一些庫沒有賦權限,所以你不是所有庫都能看得到