更新:
執行如下命令:
apt-get install mysql-server
即可。
新建一個臨時目錄:
cd ~
mkdir mysql
cd mysql
執行如下命令下載文件(mysql-5.7.29是5.7最新版本)
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
解壓
tar -xvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
重命名
mv mysql-5.7.29-linux-glibc2.12-x86_64/ mysql-5.7.29
移動
mv mysql-5.7.29 /usr/local/
創建mysql組和用戶
groupadd mysql
useradd -r -g mysql mysql
創建mysq數據目錄
cd /
mkdir -p data
cd data/
mkdir -p mysql
賦予權限
chown mysql:mysql -R /data/mysql
配置參數
vim /etc/my.cnf
然後 按 i 進入編輯模式,把下面內容複製進去:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql-5.7.29
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
編輯完後 按esc 後按住 shift+: 輸入 wq表示保存並退出 。
初始化數據庫
cd /usr/local/mysql-5.7.29/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7.29/ --datadir=/data/mysql/ --user=mysql --initialize
這裏如果報如下錯誤:
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
需要安裝libaio1
apt-get install libaio1
安裝成功後
查看密碼,複製
vim /data/mysql/mysql.err
啓動
service mysql start
查看是否啓動成功
ps -A | grep mysql
顯示如下
23838 ? 00:00:00 mysqld_safe
24052 ? 00:00:00 mysqld
停止
service mysql stop
更改密碼
cd /usr/local/mysql-5.7.29/bin
./mysql -u root -p
執行修改,並刷新
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
設置相關權限
cp ./support-files/mysql.server /etc/init.d/mysqld
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysqld
如果你的系統有Mariadb,需要先卸載
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
最後,需要加入一下環境變量
vi ~/.bashrc
在文件末尾插入如下內容
export PATH=$PATH:/usr/local/mysql-5.7.29/bin
執行命令
source ~/.bashrc
綜上,mysql安裝完成了,可以進行MySQL常規操作了
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| engine_cost |
| event |
| func |
| general_log |
| user |
+---------------------------+
31 rows in set (0.00 sec)
mysql> select * from time_zone;
Empty set (0.00 sec)