centos(親測centos 7.6)
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
如果下載不了可以到這裏下載https://download.csdn.net/download/zhangenter/12034089
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
修改默認編碼
character-set-server=utf8
如果需要修改數據存放目錄,修改my.cnf
datadir=/data/mysql
啓動服務
systemctl start mysqld.service
如果修改數據目錄後啓動服務可以有如下報錯
systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with
error code. See “systemctl status mysqld.service” and “journalctl -xe”
for details.
查看日誌文件/var/log/mysqld.log可能是如下錯誤
2019-12-10T07:27:38.255234Z 0 [ERROR] InnoDB: Operating system error number 13 in a file operation.
2019-12-10T07:27:38.255255Z 0 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory.
2019-12-10T07:27:38.255266Z 0 [ERROR] InnoDB: os_file_get_status() failed on './ibdata1'. Can't determine file permissions
2019-12-10T07:27:38.255281Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-12-10T07:27:38.855951Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2019-12-10T07:27:38.855996Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-12-10T07:27:38.856009Z 0 [ERROR] Failed to initialize builtin plugins.
2019-12-10T07:27:38.856014Z 0 [ERROR] Aborting
是文件權限造成,首先給mysql權限
chown -R mysql:mysql /data/mysql
查看應用模式,如果是嚴格模式(Enforcing)就修改爲寬容模式
getenforce
Enforcing
setenforce 0
getenforce
Permissive
再次啓動服務,服務啓動成功。
查看服務狀態
systemctl status mysqld.service
● mysqld.service - MySQL Server Loaded: loaded
(/usr/lib/systemd/system/mysqld.service; enabled; vendor preset:
disabled) Active: active (running) since Tue 2019-12-10 07:50:22
UTC; 4min 41s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 32238 ExecStart=/usr/sbin/mysqld --daemonize
–pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 32220
ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited,
status=0/SUCCESS) Main PID: 32241 (mysqld) CGroup:
/system.slice/mysqld.service
└─32241 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
查看初始密碼,可以看到下面的密碼是)J>7IZow<Mx6
grep "password" /var/log/mysqld.log
2019-12-10T07:23:46.609333Z 1 [Note] A temporary password is generated
for root@localhost: )J>7IZow<Mx6
進入mysql
mysql -uroot -p")J>7IZow<Mx6"
mysql: [Warning] Using a password on the command line interface can be
insecure. Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 Server version: 5.7.28Copyright © 2000, 2019, Oracle and/or its affiliates. All rights
reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input
statement.mysql>
修改mysql的root用戶的密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'My_pwd12';
Query OK, 0 rows affected (0.00 sec)
(密碼必須至少8位,並且含大小寫、特殊字符及數字)否則會提示
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
如果覺得密碼強度要求太高,需要改低強度,可以看下密碼要求
mysql> SHOW VARIABLES LIKE '%password%';
+----------------------------------------+-----------------+
| Variable_name | Value |
+----------------------------------------+-----------------+
| default_password_lifetime | 0 |
| disconnect_on_expired_password | ON |
| log_builtin_as_identified_by_password | OFF |
| mysql_native_password_proxy_users | OFF |
| old_passwords | 0 |
| report_password | |
| sha256_password_auto_generate_rsa_keys | ON |
| sha256_password_private_key_path | private_key.pem |
| sha256_password_proxy_users | OFF |
| sha256_password_public_key_path | public_key.pem |
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+----------------------------------------+-----------------+
17 rows in set (0.00 sec)
將validate_password_length可將密碼的長度要求改小
將validate_password_policy改爲low,密碼可以比較簡單
mysql> set global validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_policy=low;
Query OK, 0 rows affected (0.00 sec)
再次設置密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00 sec)
ubuntu(親測16.04和18.04)
從mysql官網找到debian的mysql安裝包url
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
如果下載不了可以到這裏下載https://download.csdn.net/download/zhangenter/12034092
配置下載的包
dpkg -i mysql-apt-config_0.8.12-1_all.deb
彈出mysql數據源配置的圖形界面,選擇ok繼續。
更新源
apt-get update
安裝更新包
apt-get install mysql-server
圖形界面中設置root的密碼xxx
mysql已經可以用了service mysql status可以看到mysql服務正常允許,如果需要修改mysql的數據目錄,可以參考以下內容:
1.停止服務
service mysql stop
2.vi /etc/mysql/mysql.conf.d/mysqld.cnf
將
datadir = /var/lib/mysql
改爲自己的目錄,比如/data/mysql
datadir = /data/mysql
3.創建文件夾/data/mysql
mkdir -p /data/mysql/
將目錄權限給mysql
chown -R mysql:mysql /data/mysql
啓動服務
service mysql start
這時候可能看到如下報錯
Job for mysql.service failed because the control process exited with error code.
See “systemctl status mysql.service” and “journalctl -xe” for details.
打開日誌/var/log/mysql/error.log查看,可能看到裏面的錯誤信息是這樣的
2019-12-15T12:56:54.127873Z 0 [ERROR] InnoDB: The innodb_system data file ‘ibdata1’ must be writable
2019-12-15T12:56:54.127952Z 0 [ERROR] InnoDB: The innodb_system data file ‘ibdata1’ must be writable
2019-12-15T12:56:54.127962Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-12-15T12:56:54.728747Z 0 [ERROR] Plugin ‘InnoDB’ init function returned error.
2019-12-15T12:56:54.728819Z 0 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
2019-12-15T12:56:54.728826Z 0 [ERROR] Failed to initialize builtin plugins.
2019-12-15T12:56:54.728829Z 0 [ERROR] Aborting
這是和centos類似的文件權限問題,修改文件 /etc/apparmor.d/usr.sbin.mysqld
參考原始文件有下面兩行
# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
增加兩行
# Allow data dir access
/data/mysql/ r,
/data/mysql/** rwk,
保存文件後重啓下服務
service apparmor restart
這時候再去執行service mysql start就沒有問題了。
不過這時候可以看到,因爲是新目錄,之前設置的root密碼已經不在了。
當然如果是移動舊的庫,也可以將/var/lib/mysql目錄拷到/data下(安全起見建議先拷貝後面再刪除/var/lib/mysql目錄裏那些舊的庫)
cp -rp /var/lib/mysql /data/
同樣需要修改/etc/apparmor.d/usr.sbin.mysqld文件,後才能起mysql服務
debian(親測Debian 9.11 (stretch))
apt-get install lsb-release
從mysql官網找到debian的mysql安裝包url
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
如果下載不了可以到這裏下載https://download.csdn.net/download/zhangenter/12034092
配置下載的包
dpkg -i mysql-apt-config_0.8.12-1_all.deb
更新源
apt-get update
安裝更新包
apt-get install mysql-server
圖形界面中設置root的密碼xxx
等安裝結束,mysql已經可以用了,service mysql status可以看到mysql服務正常允許,如果需要修改mysql的數據目錄,可以參考以下內容:
1.停止服務
service mysql stop
2.vi /etc/mysql/mysql.conf.d/mysqld.cnf
將
datadir = /var/lib/mysql
改爲自己的目錄,比如/data/mysql
datadir = /data/mysql
3.創建文件夾/data/mysql
mkdir -p /data/mysql/
將目錄權限給mysql
chown -R mysql:mysql /data/mysql
當然如果是移動舊的庫,也可以將/var/lib/mysql目錄拷到/data下(安全起見建議先拷貝後面再刪除/var/lib/mysql目錄裏那些舊的庫)
cp -rp /var/lib/mysql /data/
4.啓動服務
service mysql start