Debian10安裝mysql

考慮到多數正式環境的服務器是無法連接互聯網的,因此,這裏使用的是離線安裝的方式。

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所在的本機登陸
# 登陸成功,由於對一些庫沒有賦權限,所以你不是所有庫都能看得到
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章