Linux安装MySQL

一、下载指引

首先我们需要去官网下载一个MySQL压缩包,将其解压到我们想要安装的目录之下,下载地址为:https://www.mysql.com/downloads
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果需要下载历史版本,可以在上图中的Archives中进行选择
在这里插入图片描述


二、远程连接(Mac用户)

之前在Linux安装JDK及Tomcat中,我们是使用的VMware的虚拟机来进行介绍的,其中借助了SecureCRT工具来完成远程连接服务器以及安装文件的上传功能,这次我们来使用阿里云服务器来进行介绍。


如果在Windows电脑环境下,我们依旧可以借助SecureCRT来进行远程连接服务器,并进行文件的上传;如果在Mac电脑的环境下,那么我们是可以直接来进行远程连接服务器,并进行上传文件的,如下:

ssh root@127.0.0.1		#127.0.0.1替换为远程服务器IP地址

在这里插入图片描述

在输入完密码后即可远程到远程服务器中,这里我们也可以通过Mac终端的Shell菜单中的新建远程连接来进行操作
在这里插入图片描述
在这里插入图片描述

这里如果我们新建了多个远程连接,那么在最下面的下拉框中就会看到多个历史记录,如果我们想清理其中的历史记录,那么可以执行下面的命令是否列出了你的所有远程连接历史记录

defaults read /Users/用户名/Library/Preferences/com.apple.Terminal.plist PreviousCommands

如果是的话,可以运行下面的命令删除,然后退出终端,需要注意是退出而不是关闭所有窗口

defaults delete /Userls/用户名/Library/Preferences/com.apple.Terminal.plist PreviousCommands

也可以使用open /User/...命令直接在访达中打开上述路径下的文件,进行编辑,删除其中部分不想要的历史记录,然后再进行保存退出终端重新打开即可



三、上传文件(Mac用户)

上面我们介绍了Mac电脑环境下如何远程连接服务器,那么在Mac电脑如何将文件上次至服务器,这里我们需要借助scp命令,如下:

scp /home/a.txt root@www.xxx.com[网址或IP地址]:/usr/local/src		# 将本机文件复制到远程服务器上
scp root@www.xxx.com[网址或IP地址]:/usr/src/a.txt /home/src		# 将远程服务器上的文件复制到本机

在这里插入图片描述


四、安装及配置

  1. 解压安装包
    在这里插入图片描述
    # .tar文件
    tar -xvf xxx.tar		#解压
    tar -cvf xxx			#压缩
    
    # .tar.xz文件
    xz -d xxx.tar.xz		#解压,解压之后是.tar文件
    xz -z xxx.tar			#压缩
    	
    # .tar.gz文件
    tar -zxvf xxx.tar.gz		#解压,解压之后是文件夹
    tar -zcvf xxx				#压缩
    
    
    -z		#使用gzip解压
    -x		#解压文档
    -c		#创建新文档,就是代表压缩的意思
    -v		#详细输出模式
    -f		#使用归档文件
    

  1. 移动并重命名
    在这里插入图片描述

  2. 创建mysql用a户组和mysql用户
    在这里插入图片描述

  3. 将安装目录所有者及所属组改为mysql
    在这里插入图片描述

  4. 进入安装目录创建data文件夹,用于存放数据
    在这里插入图片描述

  5. 配置my.cnf文件
    在这里插入图片描述
    my.cnf文件中,配置如下信息,输入:wq进行保存

    [client]
    port=3306
    socket=/tmp/mysql.sock
    default-character-set=utf8mb4
    
    [mysqld]
    #设置mysql管理用户
    user=mysql
    #设置3306端口号
    port=3306
    #启动的socket文件
    socket=/tmp/mysql.sock
    #设置mysql的安装目录
    basedir=/usr/local/mysql
    #设置mysql数据库的数据存放目录
    datadir=/usr/local/mysql/data
    #错误日志文件路径
    log-error=/var/log/mysqld.log
    #pid文件路径
    pid-file=/var/run/mysqld/mysqld.pid
    #允许最大连接数
    max_connections=200
    #设置utf8mb4字符集
    character-set-server=utf8mb4
    character-set-client-handshake=FALSE
    collation-server=utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'
    #创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    #设置数据库表名大小写,不可以动态修改,必须重启数据库。0-表名存储为给定的大小和比较是区分大小写的;1-表名存储在磁盘是小写的,但是比较的时候是不区分大小写;2-表名存储为给定的大小写但是比较的时候是小写的
    lower_case_table_names=1
    #mysql5.6.6弃用了explicit_defaults_for_timestamp这个系统变量,高于5.6.6时要设置此变量不然timestamp默认值会报错Invalid default value
    explicit_defaults_for_timestamp=true
    #mysql5.7对group by语法更严格了,只能select分组的字段和聚合函数,其他字段不允许出现在select列中,如果不想线上报错需要写此语句
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    #Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    

    PS:在vim编辑过程中,如果发现中文乱码现象,可在用户目录下创建.vimrc文件,加入如下内容保存即可,其中fileencodings中utf-8要写在前面

    set fileencodings=utf-8,gb2312,gbk,gb18030
    set termencoding=utf-8
    set fileformats=unix
    set encoding=prc


  1. 初始化数据库
    /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
    
    在这里插入图片描述
    然后根据上述的错误提示信息发现是我们在/etc/my.cnf配置的错误日志文件路径导致的,所以这里新建一个日志文件,并更改其目录权限,然后再重新执行上述命令即可
    cd /var/log/
    
    vim mysqld.log
    :wq
    
    chown mysql:mysql mysqld.log
    
    PS: 如果在初始化数据库过程中发生相关依赖错误,可尝试执行yum install libaio命令来安装相关依赖包

  1. 查看初始密码
    初始化成功后,从上述的my.cnf配置文件中配置的log-error路径即可查看到初始化密码
    在这里插入图片描述

  2. 添加开机启动,把启动脚本放到开机初始化目录
    mysql.server复制到/etc/init.d目录下,并重命名为mysqld

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

    然后执行chkconfig --add mysql将其添加到服务中,可通过chkconfig --list mysql检查服务是否生效
    在这里插入图片描述
    上述看到mysql的服务,并且3、4、5都是"on"的状态,如果是状态为"off",则可执行chkconfig --level 345 mysql on


  1. 启动mysql服务
    执行service mysql start启动mysql
    在这里插入图片描述
    然后我们又发现上述的错误提示,这里其实和我们在第7步初始化数据库报错的原因一致,因为我们在/etc/my.cnf配置的pid文件目录mysql用户没有权限的原因,需新建mysqld.pid文件,并修改其目录权限
    cd /var/run/
    mkdir mysqld
    
    chown -R mysql:mysql mysqld/ 
    
    这里如何觉得太过于繁琐的话,可以在my.cnflog-errorpid-file文件路径都配置在/usr/local/mysql/data下,因为我们在创建mysql用户时,就直接修改过/usr/local/mysql目录的权限,这样的话本步及第7步就都不会报错了。
    在这里插入图片描述
    #启动
    service mysqld start
    #停止
    service mysqld stop
    #重启
    service mysqld restart
    

  1. 配置全局环境变量
    在这里插入图片描述
    执行vim /etc/profile修改配置环境,如上添加mysql配置,ESC退出后:wq保存,最后执行source /etc/profile即可

  1. 更改root密码
    首先需要使用上述得到的初始密码来登录mysql
    在这里插入图片描述
    在MySQL8前,可以执行如下命令进行修改密码
    set password = password('新密码');
    alter user 'root'@'localhost' password expire never;
    flush privileges;
    
    但是MySQL8开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。所以需要使用以下的方法去修改root密码
    alter user 'root'@'localhost' identified with mysql_native_password by '新密码';
    FLUSH PRIVILEGES;
    

五、远程连接

在上述安装完成之后,我们在本地使用Navicat进行测试连接时,这时可能会发生如下错误
在这里插入图片描述
在这里插入图片描述

因为这里使用的是阿里云服务器,首先需要确认的是3306端口是不是对外开放了,其默认状态是不开放对外访问的,所以首先需要配置阿里云服务器的安全组规则
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


如果这里你使用的是VMware虚拟机的话,那么可以使用firewall-cmd --list-ports命令来检查一下3306端口是否开放

若无的话,可执行firewall-cmd --zone=public --add-port=3306/tcp --permanent开启3306端口号,开启后重启防火墙firewall-cmd --reload即可

停止防火墙:systemctl stop firewalld.service
禁止防火墙自启动:systemctl disable firewalld.service
启动防火墙:systemctl start firewalld.service


3306端口开放后再进行尝试连接测试库,可能又会发现如下错误
在这里插入图片描述

这里需要在服务器上先执行mysql -uroot -p登录mysql,然后执行下面命令即可

#访问mysql库
use mysql
#使root能再任何host访问
update user set host = '%' where user = 'root';
#刷新
flush privileges;

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值