原创

Linux环境安装mysql、git、docker、nginx

温馨提示:
本文最后更新于 2024年09月18日,已超过 226 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

一 .linux安装mysql

1.安装包

在/usr/local下创建mysql文件夹,进入该文件夹

cd  /usr/local/mysql

使用命令下载mysql对应的版本

wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz

查看用户组是否有mysql

groups mysql

创建mysql保存文件夹并赋权(没有就新增一个 useradd mysql)

mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql

编辑mysql配置文件,没有就新加

vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
#skip-grant-tables

如果原本有my.cnf文件,删掉里面的内容

解压下载好的mysql文件,将里面的内容移到/usr/local/mysql文件夹下

mv mysql-5.7.44-linux-glibc2.12-x86_64/* ./

进入sbin文件夹进行初始化

cd /usr/local/mysql/bin/

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

查看初始化密码

cat /data/mysql/mysql.err

复制myql启动文件

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

启动mysql

service mysql start

无密码登录mysql配置

vim /etc/my.cnf
在【mysqld】模块下面添加:skip-grant-tables 保存退出。
service mysql restart

无密码登录mysql

/usr/local/mysql/bin/mysql -u root -p   #不输入密码直接敲回车登录

如果出现缺包的问题,直接创建软链接

ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

配置root能所有端访问

use mysql      #选择访问mysql库
update user set host = '%' where user = 'root';      #使root能再任何host访问
FLUSH PRIVILEGES;       #刷新

修改root密码

ALTER USER "root"@"%" IDENTIFIED  BY "password";
FLUSH PRIVILEGES;       #刷新

如果忘记密码了,去/usr/local/mysql/bin 下,执行mysqld_safe

./mysqld_safe --skip-grant-tables &

然后再去执行[修改root密码]步骤

删除my.cnf的免密配置,重启服务

service mysql restart

登录root用户创建其他用户

 /usr/local/mysql/bin/mysql -u root -p   输入刚修改的密码

CREATE USER 'test'@'%' IDENTIFIED BY '123';

  • '%' - 所有情况都能访问
  • ‘localhost’ - 本机才能访问
  • ’111.222.33.44‘ - 指定 ip 才能访问

grant all on 数据库名.数据库表 to 用户名@'%' identified by "密码";

  1. all 可以替换为 select,delete,update,create,drop
  2. 数据库名 所有的 用*
  3. 数据库表 所有的 用*

2. docker安装mysql

  1. 下载mysql
docker pull mysql:5.7
  1. 启动

    ```xml
    docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root123456 -d mysql:5.7
    --lower_case_table_names=1(如果需要设置linux下的mysql表名不区分大小写)

docker run -p 33611:3306 --name mysql -e MYSQL_ROOT_PASSWORD=aaa -d mysql:5.7 --lower_case_table_names=1
(如果需要设置linux下的mysql表名不区分大小写)


   参数说明

   -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口 

   -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机 

   -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机 

   -v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机 

   -e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码 

   ```xml
   启动失败问题
   CentOS7中的安全模块selinux把权限禁掉了,无法使用-v命令进行挂载

   添加selinux规则,将要挂载的目录添加到白名单
   chcon -Rt svirt_sandbox_file_t /mydata/mysql/log
   chcon -Rt svirt_sandbox_file_t /mydata/mysql/data
   chcon -Rt svirt_sandbox_file_t /mydata/mysql/conf
  1. 配置

    进入容器的mysql

    docker exec -it mysql mysql -uroot -pTfkj@qq.0248a
    

    设置远程访问

    grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges;
    
  1. 小问题解决

    使用轻量服务器链接不到mysql问题

    1.配置轻量服务器的防火墙,在腾讯云控制台处
    2. 进入容器的mysql
    1. show databases; 查询数据库
    2. use mysql; 使用mysql
    3. show tables; 查询mysql里面的表,应该有user用户表
    4. update user set authentication_string=password("yourNewPassword") where User='root'; 更新密码
    5. 重启mysql

二. linux安装redis

redis版本 6.0.20

1.准备环境

在使用make编译redis时,需要升级原有的gcc版本

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
gcc -v

以上方式升级gcc失败时,通过源码安装升级

yum install wget make gmp-devel mpfr-devel libmpc-devel bzip2 zlib-devel

#可以从清华源找到需要的版本https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/
wget https://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz
tar xf gcc-8.3.0.tar.gz
cd gcc-8.3.0
./contrib/download_prerequisites
mkdir build
cd build
../configure --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --enable-gnu-indirect-function --with-tune=generic --disable-multilib
#CPU*2
make -j 4
make install
这个速度太慢了

由于Centos7不被维护了,所以需要修改源,参考https://zhuanlan.zhihu.com/p/707097821

sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo

2.编译安装

进入到redis文件夹,解压文件

tar -zxvf redis-6.0.20.tar.gz

进入到解压后的文件编译

make

然后安装PREFIX=/usr/local/redis 指定安装目录

make install PREFIX=/usr/local/redis

3.运行

修改配置文件,让redis可以以守护进行运行

daemonize no   修改为  daemonize yes

三.linux安装docker

1. 卸载docker

 yum  remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

2. 安装docker

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果是国内的服务器,配置下面的代理
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io

3.启动

 systemctl start docker

4.设置开启启动

systemctl enable docker

5. 验证docker版本

docker --version

6.配置代理

本机先启动代理

没有就先创建该文件

vim  /etc/systemd/system/docker.service.d/proxy.conf
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
#重启
sudo systemctl daemon-reload && 
sudo systemctl restart docker
#查看是否已经用上代理
Environment=HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890

四.linux安装git

1. 安装(linux)

git最新版本查看地址https://github.com/git/git/tags,下载对应版本的tar.gz

1. 查看服务器是否有git

git --version #查看git版本
yum remove git -y #移除旧git版本(如果有的话)

2. 安装所需软件依赖包

yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
yum install -y gcc-c++ perl-ExtUtils-MakeMaker

3.将下载好的git放到自己的文件夹(也可以使用wget命令下载),然后解压

tar -zxvf xxx.tra.gz #对应的git包名称

4.配置编译安装

cd git-2.37.1   #解压好的git目录 
make configure  #编译
./configure --prefix=/usr/local/git ##配置目录
make && make install   #安装

5.加入环境变量

vim /etc/profile

export GIT_PATH=/usr/local/git/bin
export JAVA_PATH=/usr/local/jdk/jdk1.8.0_251/bin
export MAVEN_PATH=/usr/local/maven/apache-maven-3.9.6/bin
export PATH=$PATH:${GIT_PATH}:${JAVA_PATH}:${MAVEN_PATH}

source /etc/profile #刷新环境变量

2. 配置用户信息

git config --global user.name "username"
git config --global user.email xxx.@.com

3.查询全部配置

git config --list

五.linux安装nginx

5.1安装包方式

基础环境更新

yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

进入安装包页面

./configure
make 
make install

配置环境变量

vim /etc/profile

PATH=$PATH:/usr/local/nginx/sbin
export PATH

#配置立即生效

source /etc/profile

nginx配置SSL

nginx -V  #大写的V检查nginx是否安装了ssl 如果没有安装,则进行安装

进入到nginx的解压目录执行 /usr/local/nginx是nginx的安装目录

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

在nginx的解压目录执行make (不能执行make install 不然会将nginx重新安装)
make

执行完成后,会在解压目录生成一个objs文件夹,将文件夹下的nginx文件替换到安装目录下 /usr/local/nginx/sbin
cp xx/objs/nginx /usr/local/nginx/sbin/

#4 重启nginx检查即可

#如果提示nginx文件没有权限 则执行 sodu chmod -R 777 nginx

5.2 yum方式安装

yum install -y nginx

系统启动时运行

systemctl enable nginx

启动nginx

systemctl start nginx

停止nginx

systemctl stop nginx

配置文件在/etc/nginx/下

在conf.d文件下加自己需要的配置文件即可

六.yum配置阿里源

1.备份原文件

cp -r /etc/yum.repos.d  /etc/yumcp.repos.d

2.进入文件夹删除原文件

cd /etc/yum.repos.d
rm -rf *

3.下载新的文件

# 1. 配置Base源 能够下载CentOS自带的软件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 2. 配置Epel源  :下载第三方工具
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 3. 清空源缓存 && 生成阿里云缓存
yum clean all
yum makecache
正文到此结束