更新:
执行如下命令:
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)