一,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开始部署优化虚拟机
发表评论 取消回复