在linux中安装mysql

该文详述了在Linux系统中安装MySQL8.0的步骤,包括下载安装包,查询系统和glibc版本,创建配置文件my.cnf,初始化服务,处理依赖问题,设置开机自启动,修改默认密码,以及开启远程连接的全过程。
摘要由CSDN通过智能技术生成

1、先找到Mysql官网下载安装包,官网地址如下:


这里,也可以用我现成的资源(百度网盘)。

链接:百度网盘 请输入提取码

提取码:9999

libaio-0.3.109-13.el7.x86.rpm 包会用到。如果环境没有就需要安装。

也可以根据提示到官网去下载安装包

MySQL :: Download MySQL Community Server (Archived Versions)MySQL :: Download MySQL Community Server (Archived Versions)

注:这里我安装的是 Linux 版本

1.1、如何查询自己的服务器系统版本命令如下:



cat /etc/redhat-release

1.2、查询自己的服务器 glibc 版本的命令如下:



ldd --version

1.3下载完成后,文件如下:


2、上传压缩包到你的服务器指定目录下。


2.1这里我把它上传到了/usr/local


2.2解压并重命名


进入你的文件所在目录


cd /usr/local

解压


tar-xvfmysql-8.0.27-linux-glibc2.17-x86_64-minimal.tar.xz

重命名


mv mysql-8.0.27-linux-glibc2.17-x86_64-minimal mysql-8.0.27

3、创建配置文件 my.cnf



touch /etc/my.cnf

编辑mysql服务的配置文件


vim /etc/my.cnf

注:此处用我得完整配置文件内容做示例,您只需修改其中的路径为自己的路径即可,或者您也可以设置成跟我一样的路径,那么配置文件可以直接使用。

my.cnf 文件内容如下:


    [mysqld]
    port=3306
    basedir=/usr/local/mysql-8.0.27
    datadir=/usr/local/mysql-8.0.27/data
    socket=/usr/local/mysql-8.0.27/data/mysql.sock
     
    character-set-server=utf8
    collation-server=utf8_general_ci
    #performance_schema_max_table_instances=400#table_definition_cache=400#table_open_cache=256#datadir=/var/lib/mysql#socket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security risks#symbolic-links=0# Settings user and group are ignored when systemd is used.# If you need to run mysqld under a different user or group,# customize your systemd unit file for mariadb according to the# instructions in http://fedoraproject.org/wiki/Systemd
    max_allowed_packet=1024M
    max_connections=1000# Recommended in standard MySQL setup
    sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    wait_timeout=2147483
    interactive_timeout=2147483
    connect_timeout=20
    thread_cache_size=256
    lower_case_table_names=1
    innodb_strict_mode=0# 创建新表时将使用的默认存储引擎default-storage-engine=INNODB
    default_authentication_plugin=mysql_native_password
    innodb_file_per_table=1
    log_bin_trust_function_creators=1
    [mysqld_safe]
    log-error=/usr/local/mysql-8.0.27/log/mysqld.log
    pid-file=/usr/local/mysql-8.0.27/log/mysqld.pid
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysql.server]
    default-character-set=utf8
    [client]
    default-character-set=utf8
    socket=/usr/local/mysql-8.0.27/data/mysql.sock
    ## include all files from the config directory##!includedir /etc/my.cnf.d

4、切换到mysql解压后目录下(/usr/local/mysql-8.0.27)


创建存储数据的 data 目录和日志 log 目录


mkdir data
     
    mkdirlog
     
    echo "" > /usr/local/mysql-8.0.27/log/mysqld.log

5、初始化mysql服务(切换到安装目录下:/usr/local/mysql-8.0.27执行下面命令



 ./bin/mysqld --initialize --user=root --basedir=/usr/local/mysql-8.0.27 --datadir=/usr/local/mysql-8.0.27/data

可能会有这个报错信息:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

如果这一步报上面的错,提示缺少类库。可以采用在线或者离线安装依赖库来解决。


在线yum 安装

yum-yinstalllibaio.so.1

yum -y install numactl

注:yum 安装比较简单,你只需要提示缺什么库,就安装什么类库。


 离线安装

CentOS 官网镜像地址:

CentOS MirrorCentOS Mirror http://mirror.centos.org/centos/7/os/x86_64/Packages/

Tip:这里提示一下,如何找 rpm 离线包,根据目录结构。


    contos : 代表系统

    7:代表版本

    os/x86_64:64位操作系统

    Packages:rpm 包的路径

浏览器搜索 libaio ,点击下载

下载之后再上传到服务器上

切换目录到 /usr/local/mysql-8.0.27/rpm 下面,执行安装命令。


    cd /usr/local/mysql-8.0.27/rpm
    rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm

yum 或者离线 安装完依赖库后,再重新执行初始化 mysql 服务的命令。

先切换到 mysql 安装目录下:/usr/local/mysql-8.0.27


cd /usr/local/mysql-8.0.27

再执行初始化 mysql 服务的命令。


 ./bin/mysqld --initialize --user=root --basedir=/usr/local/mysql-8.0.27 --datadir=/usr/local/mysql-8.0.27/data

这次执行完毕后,可以看到安装成功界面,此处会有默认临时密码,请务必记住,当然忘记了可以查询的。

初始化后会得到初始化的root登录密码:EAe>iXIqn2x/

6、设置开机自启动


先在 mysql 安装目录下,查看脚本中配置的基础路径是否正确


cd /usr/local/mysql-8.0.27

vim ./support-files/mysql.server

    basedir=/usr/local/mysql-8.0.27
    datadir=/usr/local/mysql-8.0.27/data

6.1复制mysql.server脚本到资源目录,并赋予执行权限:



    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
     
    chmod +x /etc/rc.d/init.d/mysqld

6.2将 mysqld 服务加入到系统服务并检测是否生效:



    chkconfig --add mysqld
     
    chkconfig --list mysqld

7、启动Mysql 服务



service mysqld start

这里启动可能的几种报错信息:

1)Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql-8.0.27/data/VM-0-16-centos.pid).

解决方案:编辑mysqld文件


vim /etc/rc.d/init.d/mysqld

找到start模块,添加--user=root到mysqld_safe 后面即可

2)在 Red Hat Enterprise Linux Server release 7.9 (Maipo) 中提示如下信息:

/etc/init.d/mysqld: line 239: my_print_defaults: command not found

/etc/init.d/mysqld: line 259: cd: /usr/local/mysql: No such file or directory

Starting MySQLCouldn't find MySQL server (/usr/local/mysql/[FAILED]ld_safe)

这里提示信息,是文件路径的错误。

解决方案:编辑mysqld文件,修改 basedir 和 datadir 的路径。


vim /etc/rc.d/init.d/mysqld

注意修改下图中的这几个目录配置。

同时,找到 start 模块,添加 --user=root 到 mysqld_safe 后面。

不管哪种报错,我们就根据错误提示去做一些配置文件的修改即可。

再次执行启动命令


service mysqld start

这次可以看到 Starting MySQL. SUCCESS!

或者看到 Starting MySQL.. [ OK ]

都是启动成功的输出信息。

8、配置环境变量


打开/etc/profile配置文件,执行编辑文件命令


vim /etc/profile

在文件末尾追加如下内容后:


MYSQL_HOME=/usr/local/mysql-8.0.27
    exportPATH=$PATH:$MYSQL_HOME/bin

保存并退出(:wq)。

保存使得生效


source/etc/profile

9、测试登录mysql(socket连接)


密码为初始化时生成的临时密码(EAe>iXIqn2x/)


mysql -uroot -p

10、修改初始密码为自己想要设定的密码


注:初次安装完毕后,务必要修改密码,第一默认密码只是临时的,第二出于安全考虑以及自身需要。


alter user 'root'@'localhost' identified by '321qwe!@#';

11、设置远程可连接



GRANTALLPRIVILEGESON *.* TO'root'@'%';

若是报错如下:

ERROR 1410 (42000): You are not allowed to create a user with GRANT

修改host,依次执行如下命令


use mysql

update user sethost='%' where user='root';

再次授权执行两次


grantallon *.* to'root'@'%'withgrantoption;

退出mysql


exit

12、测试用Navicat远程连接


此处我的服务器防火墙没有开启,所以3306端口可以直接连接。

如果您的服务器开启了防火墙,那么您在连接前需要开放3306端口,当然这个端口您也可以根据自己需要在my.cnf修改为特定端口号,主要也是安全起见。

13、开放端口方式:


执行如下编辑命令


vi /etc/sysconfig/iptables

添加下面内容


-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存退出(wq!)

CentOS 8 采用:


firewall-cmd --zone=public --add-port=8081/tcp --permanent  #开放端口
firewall-cmd --reload  #对防火墙进行刷新
firewall-cmd  --list-ports  #查看开放的端口

重启防火墙


service iptables restart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值