在centos6.8离线,tar自定义安装mysql5.7及以上版本

1、检查是否已经安装过mysql,执行命令,如果存在先删除再安装

rpm -qa | grep mysql
rpm -e --nodeps 文件名称

2、查询所有Mysql对应的文件夹,删除相关目录或文件

whereis mysql 和 find / -name mysql
rm -rf 文件的绝对路径

3、下载二进制安装文件,即.tar.gz文件

下载地址为:https://downloads.mysql.com/archives/community/
在这里插入图片描述

4、创建mysql用户,先创建mysql组,再创建mysql用户并加入到mysql组中

groupadd mysql
useradd mysql -r -g mysql
#验证用户组和用户 id mysql

5、创建程序、数据存放目录

mkdir /home/mysql/{program,data,conf} -p
mkdir /home/mysql/data/mysqldata1/{mydata,sock,tmpdir,log,innodb_ts,innodb_log,undo,slowlog,binlog,relaylog} -p
#查看创建目录结果 tree /home/mysql
如果没有这个命令,使用 yum install tree -y

6、解压缩二进制安装文件并设置目录权限

把二进制安装文件解压缩到/home/mysql/program目录下,并修改程序、数据存放路径 宿主、属组为mysql,使MySQL用户对这些目录和文件有完全访问权限。

tar -zxvf mysql.tar.gz文件 -C /home/mysql/program
chown mysql.mysql /home/mysql -R
#查看datadir关键目录的权限是否正确
ll /home/mysql/data/mysqldata1/

7、软连接程序路径,并设置mysql命令环境变量

把/home/mysql/program/mysql-5.6.35-linux-glibc2.5-x86_64路径软链接到MySQL默认的程序访问路径/usr/local/mysql下,并把/usr/local/mysql/bin/添加到系统环境变量中,以便 使用mysql相关命令时不需要输入绝对路径。

ln -s /home/mysql/program/mysql程序 /usr/local/mysql
#查看basedir关键程序目录是否可用 ll /usr/local/mysql
vim /etc/profile
后面加上 export PATH=$PATH:/usr/local/mysql/bin/

8、配置my.cnf文件参数

需要新建一个my-default.cnf在/usr/local/mysql/support-files路径下,
cp -ar /usr/local/mysql/support-files/my-default.cnf /home/mysql/conf/my.cnf

ln -s /home/mysql/conf/my.cnf /etc/my.cnf

my-default.cnf的内容如下:
[client]
default-character-set=utf8
#password = your_password
port = 3306
socket = /home/mysql/data/mysqldata1/sock/mysql.sock #sock文件所在路径

[mysqld]
explicit_defaults_for_timestamp=true
user=mysql
character-set-server=utf8
port = 3306
socket = /home/mysql/data/mysqldata1/sock/mysql.sock #sock文件所在路径
basedir = /usr/local/mysql
datadir = /home/mysql/data/mysqldata1/mydata #数据文件路径
pid-file = /home/mysql/data/mysqldata1/sock/mysql.pid #pid文件所在路径
tmpdir = /home/mysql/data/mysqldata1/tmpdir #存放临时文件的路径
log-error = /home/mysql/data/mysqldata1/log/error.log
#最后加一句作用是使安装的mysql库不区分表大小写:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names=1
default-storage-engine=INNODB

slow_query_log
slow_query_log_file = /home/mysql/data/mysqldata1/slowlog/slow_query.log
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
character-set-server=utf8
init_connect=‘SET NAMES utf8’
log-bin = /home/mysql/data/mysqldata1/binlog/mysql-bin
relay-log = /home/mysql/data/mysqldata1/relaylog/mysql-relay-bin
binlog_format=mixed
server-id = 1
innodb_data_home_dir = /home/mysql/data/mysqldata1/innodb_ts
innodb_log_group_home_dir = /home/mysql/data/mysqldata1/innodb_log
innodb_undo_directory = /home/mysql/data/mysqldata1/undo

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
default-character-set=utf8

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

9、初始化mysql配置信息

执行该语句,会产生一个随机密码,要到error.log去找
mysqld --defaults-file=/etc/my.cnf --initialize
执行该命令,则初始化第一次登录数据库使用空root密码
mysqld --defaults-file=/etc/my.cnf --initialize-insecure

10、启动mysql服务

将mysql.server文件复制到/etc/init.d/目录下,命名为mysqld程序,并使用这个脚本启动和停止MySQL。
cp -ar /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
授予权限
chmod +x /etc/init.d/mysqld
查看是否被成功赋予执行权限
ll /etc/init.d/mysqld
启动mysql服务
service mysqld start
查看进程和端口
ps aux|grep mysqld
netstat -ntupl |grep mysqld

11、进入数据库

mysql
查看当前登录用户
select user();
查看当前版本是否正确
select version();

12、删除非root或非localhost的用户并修改root密码

在默认情况下,MySQL初始化完成之后,创建了一些默认用户:匿名用户、允许 127.0.0.1和localhost登录的非root用户,建议删除这些无用且可能给数据库带来安全风险的用户

select user,host from mysql.user;
如果是5.7及以上的版本,需要排除几个系统用户
Delete from mysql.user where user not in (‘mysql.sys’,’mysql.version’,’mysqlxsys’,’root’,’mysql.infoschema’) or host not in (‘localhost’);
修改用户密码
方式一:alter user root@localhost identified by ‘123456’;
方式二:update mysql.user set authentication_string=password(‘123456’) where user=‘root’ and host=‘localhost’;
刷新权限:flush privileges;

13、创建用户、库、表、数据

不要直接使用DML语句操作mysql.user表,而是要使用grant、revoke或者create user、 drop user语句。如果必须要使用DML语句操作mysql.user表,那么请注意,在MySQL 5.7.x 中password字段名称变更为authentication_string。

创建管理用户并授权
创建管理用户,并为这个管理用户授予任意地址访问的所有权限(包括with
grant option权限)
创建管理用户
create user ‘admin’@’%’ identified by ‘123456’;
create user ‘admin’@‘localhost’ identified by ‘123456’;
grant all on . to ‘admin’@‘localhost’ with grant option;

本文内容参考《MySQL性能优化金字塔法则》
如有侵权,请联系删除。

猜你喜欢

转载自blog.csdn.net/qq798867485/article/details/108605231
今日推荐