目录
一、版本安装要求
1、操作系统
Oracle Linux 7
2、MySQL版本
MySQL 5.7.40
3、MySQL下载地址:
(1)二进制版本下载(或者为绿色版,直接部署使用)
注:本课程使用二进制版本
cd /mysql/app
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
二、安装前检查
1、系统环境配置检查
--https://www.topunix.com/post-8941.html
2、系统环境依赖包安装检查
(1)检查mysql必要包libaio
rpm -qa |grep libaio yum install libaio -y
(2)卸载掉系统自带的mysql程序
[root@itpuxdb mysql]# rpm -qa |grep mysql mysql-5.1.73-8.0.1.el6_8.x86_64 mysql-devel-5.1.73-8.0.1.el6_8.x86_64 mysql-libs-5.1.73-8.0.1.el6_8.x86_64 (有这个libs是没有关系的,无需卸载) rpm -e mysql-devel-5.1.73-8.0.1.el6_8.x86_64 rpm -e mysql-5.1.73-8.0.1.el6_8.x86_64 rpm -e MySQL-server-5.6.49-1.el7.x86_64 rpm -e MySQL-client-5.6.49-1.el7.x86_64 rpm -e MySQL-devel-5.6.49-1.el7.x86_64 yum remove mariadb-libs -y
三、安装流程
1、下载安装程序并校验
(1)下载安装程序
cd /mysql/app wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
(2)校验安装程序
cd /mysql/app md5sum mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz ce0ef7b9712597f44f4ce9b9d7414a24
2、创建用户,组,创建目录
(1)已有的lvm挂载目录:
安装目录:/mysql/app 数据目录:/mysql/data 日志目录:/mysql/log 备份目录:/mysql/backup
(2)新增的配置
groupadd mysql useradd -r -g mysql -s /bin/false mysql #默认用root安装,但使用mysql用户和组的权限,mysql用户不允许登录 mkdir -p /mysql/data/3306/data mkdir -p /mysql/log/3306
3、解压安装程序包
tar zxvf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
4、做软连接
便于后面对mysql的版本一目了然。
[root@mysql51 app]# ln -s mysql-5.7.40-linux-glibc2.12-x86_64 mysql
5、修改权限
chown -R mysql:mysql /mysql
6、配置环境变量(root权限即可)
(1)配置环境变量
vi ~/.bash_profile PATH=$PATH:/mysql/app/mysql/bin:$HOME/bin source ~/.bash_profile
(2)测试——版本查看
[root@mysql51 ~]# mysql --version mysql Ver 14.14 Distrib 5.7.40, for linux-glibc2.12 (x86_64) using EditLine wrapper
7、准备参数文件
(1)下载参数文件
cd /mysql/data/3306 wget https://download.topunix.com/MySQL/config-MySQL5.7/my.cnf.linux mv my.cnf.linux my.cnf
(2)修改参数
bind_address= 192.168.1.51 general_log_file=/mysql/log/3306/mysql51db-general.err slow_query_log_file=/mysql/log/3306/mysql51db-query.err log-error=/mysql/log/3306/mysql51-error.err
(3)修改权限
chown mysql:mysql my.cnf
(4)创建err文件,并改权限,否则无法启动mysql
[root@mysql51 3306]# touch /mysql/log/3306/mysql51db-error.err chown -R mysql:mysql /mysql/log/3306/mysql51db-error.err
8、初始化MYSQL并检查相关目录及文件
(1)根据my.cnf初始化数据库
[root@mysql51 3306]# mysqld --defaults-file=/mysql/data/3306/my.cnf --initialize --user=mysql --basedir=/mysql/app/mysql --datadir=/mysql/data/3306/data
(2)从err日志文件中查看初始化后的数据库密码
[root@mysql51 data]# cat /mysql/log/3306/mysql51db-error.err [Note] A temporary password is generated for root@localhost: 7Ja<%zc&+ofQ
9、启动测试
/mysql/app/mysql/bin/mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --datadir=/mysql/data/3306/data --user=mysql
如果启动正常,3306端口开启,则说明配置正确。
10、设置密码# set the default password
(1)赋值随机密码至变量defaultmysqlpwd
defaultmysqlpwd=`grep 'A temporary password' /mysql/log/3306/mysql51db-error.err | awk -F "root@localhost: " '{ print $2}' |tail -n1`
(2)更改密码为rootroot
mysql -uroot -p"${defaultmysqlpwd}" --connect-expired-password <<EOF ALTER USER 'root'@'localhost' IDENTIFIED BY 'rootroot'; EOF
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
10、配置启动脚本及自动启动
--https://www.topunix.com/post-11783.html
11、初始化密码问题解决
--https://www.topunix.com/post-11789.html
12、远程登录修改,并远程测试
mysql> grant all privileges on *.* to 'root'@'%' identified by 'rootroot' with grant option; mysql>flush privileges;
四、创建数据库并建表等
1、创建一个数据库
create database llldb; -- CREATE DATABASE llldb default charset utf8 collate utf8_general_ci;
2、创建用户与分配权限
(1)创建用户
#创建用户时,只能用远程的方式(%),不能用localhost方式。
create user 'lll'@'%' identified by '123'; flush privileges;
(2)授权
grant all privileges on llldb.* to 'lll'@'%' identified by '1234'; grant all privileges on llldb.* to 'lll'@'localhost' identified by '12345'; --grant all privileges on *.* to 'lll'@'localhost' identified by '123456' with grant option; --grant all privileges on *.* to 'lll'@'%' identified by '1234567' with grant option; flush privileges;
3、区分上述命令的区别:
(1)授权用户lll远程访问,只能访问访问llldb数据库,同时修改访问密码为1234
grant all privileges on llldb.* to 'lll'@'%' identified by '1234';
--llldb.*中,llldb代表数据库,*代表所有表,1234代表%远程登录密码;
(2)授权用户lll本地访问,只能访问访问llldb数据库,同时修改访问密码为12345
grant all privileges on llldb.* to 'lll'@'localhost' identified by '12345';
--llldb.*中,llldb代表用户,*代表所有表,12345代表localhost本地登录密码;
(3)授权用户lll本地访问,所有库的访问权限,同时修改访问密码是123456
grant all privileges on *.* to 'lll'@'localhost' identified by '123456' with grant option;
--*.*中,第一个*代表所有数据库,*代表所有表,123456代表localhost本地登录密码;
(4)授权用户lll远程访问,所有库的访问权限,同时修改访问密码是1234567
grant all privileges on *.* to 'lll'@'%' identified by '1234567' with grant option;
--*.*中,第一个*代表所有数据库,*代表所有表,1234567代表远程登录密码;
4、删除用户
drop user lll; #默认会删除%(远程方式的)的用户 drop user 'lll'@'localhost'; #主动删除localhost方式访问的的用户
5、查看用户权限
show grants for 'lll';
6、回收权限:
把grant改为revoke,把to改为from即可。
revoke all privileges on *.* from 'lll'@'%' with grant option;
7、检查用户
select host,user from mysql.`user`;
8、创建表和数据插入
create table dept ( deptno int auto_increment primary key, dname varchar(15), loc varchar(50) ) engine = innodb; insert into dept values (1,'it','bj'); insert into dept values (2,'cw','sh'); insert into dept values (3,'hr','sz'); commit;
五、二进制MySQL卸载
1、卸载软件
停止mysql服务
删除相关目录