一,vm workstation 安装 CentOS-7

忽略

二、查看虚拟机IP

ip address

得到 192.168.196.128/24

宿主机进行Ping测试

C:\Users\Administrator>ping 192.168.196.128

正在 Ping 192.168.196.128 具有 32 字节的数据:
来自 192.168.196.128 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.196.128 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.196.128 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.196.128 的回复: 字节=32 时间<1ms TTL=64

192.168.196.128 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

我们是要看一下IP,因为我要使用shell工具进行连接

连接成功,舒服多了。

三、修改yum源

安装软件前,国内阿里云镜像源,用来提升下载速度。

1.备份原来的配置

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2.下载阿里云yum配置

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3.清除缓存和生成缓存

sudo yum clean all
sudo yum makecache

成功后提示:元数据缓存已建立。

四、安装java环境

1.查看yum提供的JDK

yum search java | grep 'Development Environment'

2.安装指定版本的JDK,注意架构

sudo yum install java-1.8.0-openjdk-devel.x86_64

3.检查环境变量

[root@localhost ~]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)

五、安装 epel-release

yum install epel-release

‌epel-release是一个软件仓库,为企业级Linux发行版(如CentOS、RHEL等)提供额外的软件包。

本来计划安装redis,结果提示没有,然后查询得到先要安装这个包,就装一下。

六、安装redis

yum install redis

安装目录查看

[root@localhost ~]# ll /usr/bin/ | grep redis
-rwxr-xr-x. 1 root root     86944 10月 26 2018 redis-benchmark
-rwxr-xr-x. 1 root root     15504 10月 26 2018 redis-check-aof
lrwxrwxrwx. 1 root root        12 10月 18 16:39 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root    173448 10月 26 2018 redis-cli
lrwxrwxrwx. 1 root root        12 10月 18 16:39 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root    975208 10月 26 2018 redis-server

配置目录查看

[root@localhost ~]# ll /etc/ | grep redis
-rw-r-----.  1 redis root  46729 10月 26 2018 redis.conf
-rw-r-----.  1 redis root   7642 10月 26 2018 redis-sentinel.conf

修改配置文件

vi /etc/redis.conf

chmod 777 /etc/redis.conf 

这里注意,可以修改IP,不要修改端口。端口需要权限后才可以使用。否则迟迟无法启动。

日志查看

vi  /var/log/redis/redis.log



12482:C 18 Oct 17:20:50.077 * supervised by systemd, will signal readiness
12482:M 18 Oct 17:20:50.079 # Creating Server TCP listening socket 0.0.0.0:6001: bind: Permission denied

不能提供宿主机访问,之后再看怎么回事吧,应该是需要开放端口权限

七、开放端口

[root@localhost ~]# firewall-cmd --query-port=6379/tcp
no

提示端口不开放,这里给他放行。

[root@localhost ~]# firewall-cmd --add-port=6379/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --query-port=6379/tcp
yes

然后就可以使用宿主机访问虚拟机中的redis了。其他需要开放端口的软件重复这个操作就可以。

八、安装MySQL数据库

这里选择了编译安装MySQL

删除系统自带的数据库

yum erase -y mariadb mariadb-server mariadb-libs mariadb-devel

查看glibc版本,为什么要查看这个版本,继续往下看

[root@localhost ~]# yum list installed | grep glibc
glibc.x86_64                          2.17-260.el7                     @anaconda
glibc-common.x86_64                   2.17-260.el7                     @anaconda

这里显示是2.17版本,打开MySQL下载地址

https://downloads.mysql.com/archives/community/

这里选择了这个版本的MySQL,为什么选择这个版本,因为本地的glibc版本向下兼容只有这个版本的最高了,在高版本的MySQL不兼容,安装会报错。

MySQL这里进行编译安装,需要使用到这个本地库,他是C语言的库,进行编译使用。

所以这里只能按照比这个版本低的MySQL。

复制链接进行下载,提示wget不存在,先安装wget

[root@localhost ~]# yum search wget

装他

[root@localhost ~]# yum install wget.x86_64

再次下载 

wget -d https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz

由于这个文件后缀是xz,所以查询解压它的方法

[root@localhost ~]# ll
总用量 1176056
-rw-------. 1 root root       1241 10月 13 13:19 anaconda-ks.cfg
-rw-r--r--. 1 root root 1204277208 12月 18 2021 mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
[root@localhost ~]# xz -d mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz

tar包有了,安装编译工具

[root@mysql-server ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake

给他解包到指定目录

[root@localhost ~]# tar -xvf mysql-8.0.28-linux-glibc2.12-x86_64.tar -C /usr/local/

跳转到安装目录,增加软连接,直接改名也可以

cd /usr/local
ln -s mysql-8.0.28-linux-glibc2.12-x86_64/ mysql8

创建MySQL组和用户

[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -r -g mysql mysql

创建mysql数据目录,然后回到根目录

cd / && mkdir -p /data/mysql8_data/

授权数据目录权限

[root@localhost /]# chown mysql:mysql -R /data/mysql8_data
[root@localhost /]# chmod 750 /data/mysql8_data/ -R

添加MySQL环境变量

export PATH=$PATH:/usr/local/mysql8/bin

创建用于初始化mysql数据库时 my.cnf 配置文件

默认读取配置文件的顺序:
Default options are read from the following files in the given order:
1./etc/my.cnf  
2./etc/mysql/my.cnf  
3./usr/local/mysql/etc/my.cnf  
4.~/.my.cnf

这里设置第一个位置

vi /etc/my.cnf

直接贴一个配置

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
 
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 设置mysql的安装目录
basedir    = /usr/local/mysql8
# 设置mysql数据库的数据的存放目录
datadir    = /data/mysql8_data/mysql
log-bin    = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir      =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
#设置mysql数据库的日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file  =/data/mysql8_data/mysql/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##################以上要修改的########################
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
 
binlog_format=mixed
 
binlog_expire_logs_seconds =864000
# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
 
[mysqldump]
quick
max_allowed_packet = 16M
 
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
 
[mysqlhotcopy]
interactive-timeout

自己看看说明,很容易理解。开始初始化MySQL

cd  /usr/local/mysql8/bin
./mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize

参数说明记录

  • --defaults-file=/usr/local/etc/my.cnf 指定配置文件(一定要放在最前面,至少 --initialize 前面)

  • --user=mysql 指定用户(很关键)

  • --basedir=/usr/local/mysql/ 指定安装目录    

  • --datadir=/usr/local/mysql/data/ 指定初始化数据目录

我丢,他说我指定的文件不存在,我给他直接复制过去

[root@localhost bin]# ./mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize
mysqld: [ERROR] Failed to open required defaults file: /usr/local/etc/my.cnf
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!





[root@localhost bin]# cp /etc/my.cnf /usr/local/etc/

可以了不报错。

查看密码

cat /data/mysql8_data/mysql/mysql.log
[root@localhost bin]# cat /data/mysql8_data/mysql/mysql.log
2024-10-22T14:17:56.284750Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.28-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.28) initializing of server in progress as process 89353
2024-10-22T14:17:56.307385Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-10-22T14:17:56.912894Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-10-22T14:17:57.979064Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 7z<nnGvwaKk7

最后一行写了password

安全后台启动MySQL

./mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

查看进程

ps -ef|grep mysql

登录更改密码

[root@localhost bin]# ./mysql -u root -p
Enter password: 

密码就是刚刚日志查看到的临时密码,我这里是:“7z<nnGvwaKk7”。

下面的操作为MySQL维护操作了,快速的完成

修改新密码123456:
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY 'admin';

刷新权限
flush privileges; 

打开库
use mysql;

select user,host,plugin,authentication_string from user;

CREATE user 'root'@'%'; #创建用户任意远程访问

alter user 'root'@'%' identified with mysql_native_password by '123456'; #修改密码

grant all privileges on *.* to "root"@"%";

flush privileges;

CREATE USER 'root'@'127.0.0.1' IDENTIFIED with mysql_native_password BY '123456'; 

flush privileges; 

select user,host,plugin,authentication_string from user;

可以了,先这样。远程登录什么的改天再说。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部