1. 下载 MySQL
本文采用的Linux为是腾讯云 标准型S2 (1 核 1 GB) Centos 7.5 64位
1.1 官网下载地址:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
1.2 选择64位的
1.3 说明
该文档仅供参考,更多详细文档请查看官方文档
https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
2. 上传文件并解压到安装目录
2.1 使用xftp上传到指定目录 我的目录为
/app/tool
2.2 解压
tar -zvxf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
2.3 重命名
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
2.4 复制到指定目录
cp -r mysql /usr/local/
3. 添加用户组,用专门管理mysql,提高安全
3.1 新建组
groupadd mysql
3.2 新建用户
useradd -r -g mysql mysql
4. 修改mysql目录权限
4.1 进入mysql根目录
cd /usr/local/mysql/
4.2 修改拥有者为mysql用户
chown -R mysql:mysql ./
5. 配置mysql服务
5.1 将mysql/support-files下的mysql.server 复制到 /etc/init.d/下并自定义为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
5.2 修改该服务
vi /etc/init.d/mysql
5.3 修改的内容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
6. 配置mysql的配置文件
在/etc/ 下新建my.cnf ,有些可能会提示已经存在,因为默认装的数据库配置文件也在,直接覆盖就行
6.1 进入etc目录
cd /etc
6.2 删除my.cnf
rm -rf my.cnf
6.3 新建my.cnf
vi my.cnf
6.4 编辑的内容
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[client]
port = 3306
default-character-set=utf8
[mysqld]
# 一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character-set-server=utf8
default_storage_engine = InnoDB
# NO_AUTO_VALUE_ON_ZERO 参数是允许自增id 从 0开始, 不设置这个参数, 自增ID 从1开始
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
7. 初始化数据库
7.1 进入mysql/bin目录下
cd /usr/local/mysql/bin/
7.2 执行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7.3 遇到错误
./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
7.4 执行以下命令
yum -y install numactl.x86_64
7.5 再执行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7.6 遇到错误
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
7.7 执行以下命令
yum -y install libaio
7.8 再执行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7.9 执行完毕后会自动生成默认的密码在执行记录中,注意复制出来
8. 启动mysql服务
8.1 执行启动命令
service mysql start
8.2启动成功会提示 SUCCESS
9. 登录及远程配置
9.1 登录
进入mysql/bin目录下执行
./mysql -uroot -p
9.2 输入密码
Enter password:输入默认的临时密码
9.3 修改密码
mysql> set password=password('新密码');
9.4 设置远程访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '访问密码';
mysql> flush privileges;
9.5 开放端口(云服务器需到控制台处理)
9.5.1 开启端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
9.5.2 重载防火墙
firewall-cmd --reload
10. 设置开机启动和环境变量(可以忽略)
10.1 查看自启服务列表
chkconfig --list
10.2 添加mysql服务到自启服务
chkconfig --add mysql
10.3 设置自启
chkconfig mysql on
11. 环境变量
11.1 为了不用在mysql/bin目录下才能连接mysql 将mysql/bin目录设置到环境变量中
vi /etc/profile
11.2 在最后追加的内容
# mysql environment
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
11.3 更新环境变量
source /etc/profile
另外附上一些用户权限相关操作的SQL语句
创建用户
- 创建了一个名为:test 密码为:1234 的用户
mysql> create user 'test'@'localhost' identified by '1234';
查询用户
- 查询用户
mysql> select user,host from mysql.user;
删除用户
- 删除用户“test”
mysql> drop user test@localhost ;
- 若创建的用户允许任何电脑登陆,删除用户如下
mysql> drop user test@'%';
更改密码
- 方法1,密码实时更新;修改用户“test”的密码为“1122”
mysql> set password for test =password('1122');
- 方法2,需要刷新;修改用户“test”的密码为“1234”
mysql> update mysql.user set password=password('1234') where user='test';
- 刷新
mysql> flush privileges;
授予权限
授予用户test通过外网IP对数据库“testdb”的全部权限
mysql> grant all privileges on 'testdb'.* to 'test'@'%' identified by '1234';
刷新权限
mysql> flush privileges;
授予用户“test”通过外网IP对于该数据库“testdb”中表的创建、修改、删除权限,以及表数据的增删查改权限
mysql> grant create,alter,drop,select,insert,update,delete on testdb.* to test@'%';
查看用户权限
- 查看用户“test”的相关权限
mysql> show grants for test;