linux环境操作mysql的简单介绍

本文目录一览:

怎样在Linux环境下安装部署MySQL数据库系统

在Linux安装软件需要预先做好如下一些准备:准备好Linux操作系统如:CentOS7。配置好yum源。

完成上述准备后,就可以动手安装MySQL数据库了。主要安装步骤如下:

1. 禁用selinux

setenforce 0

2. 上传安装文件到Linux

3.解压rpm包

tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

4.安装软件

yum install mysql-community-{libs,client,common,server}-*.rpm

5.启动mysql数据库初始化

systemctl start mysqld

6.修改vi /etc/my.cnf

添加:

[mysqld]

#可以在表中录入中文

character-set-server=utf8 #

explicit-defaults-for-timestamp

# 禁用当前密码认证策略,可以使用简单密码(生产环境不适用)

validate_password=0

7.重启mysql服务

systemctl restart mysqld

8.找临时登录密码

grep -i “temporary password” /var/log/mysqld.log

9.连接MySQL数据库

mysql -uroot -p 输入临时密码

10.修改root用户登录密码为简单密码(生产环境不适用)

alter user root@localhost identified by ”;

11.配置MYSQL_PS1环境变量

修改家目录下:.bash_profile文件,添加

export MYSQL_PS1=”\u@\h[\d]”

12.使新环境变量生效

source /root/.bash_profile

13.重新连接mysql验证

mysql -uroot -p

除了上述安装方式以外,可能在公司中会遇到安装指定版本的需求,那么如何安装指定版本的MySQL数据呢?这时我们可以采用下载指定版本安装包进行安装的方式,主要步骤如下,假设CentOS7 linux最小安装,已经配置好yum。首先检查是否安装numactl包

rpm -qa|grep numactl

yum install numactl-libs-* # 如果没有安装需要安装。检查是否安装libaio包

rpm -qa|grep libaio

yum install libaio-* # 如果没有安装需要安装

具体安装步骤如下:

* 禁用selinux

setenforce 0

* 上传安装文件到Linux

mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

* 创建mysql用户组和用户

groupadd -g 27 -r mysql

#-r创建系统账户,-M 不创建用户家目录 -N 不创建和用户名一样的用户组

useradd -M -N -g mysql -r -s /bin/false -c “MySQL Server” -u 27 mysql

id mysql

* 上传安装包到root家目录

* 解压二进制文件到/usr/local

tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local

* 解压目录改名为mysql

cd /usr/local

ls -l

mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql

* 环境变量中添加mysql/bin目录

vi /root/.bash_profile

修改PATH=/usr/local/mysql/bin:$PATH:$HOME/bin

添加 export MYSQL_PS1=”\u@\h[\d]”

source /root/.bash_profile

* 创建/usr/local/mysql/etc/my.cnf选项文件 (也可以使用默认的/etc/my.cnf选项文件)

mkdir -p /usr/local/mysql/etc

mkdir -p /usr/local/mysql/mysql-files

* 编辑选项文件my.cnf填写默认选项

vi /usr/local/mysql/etc/my.cnf

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/data/mysql.sock

log-error=/usr/local/mysql/data/mysqld.err

pid-file=/usr/local/mysql/data/mysqld.pid

secure_file_priv=/usr/local/mysql/mysql-files

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

Explicit-defaults-for-timestamp

character-set-server=utf8

[mysql]

socket=/usr/local/mysql/data/mysql.sock

* 初始化数据目录

cd /usr/local/mysql

mkdir data

chmod 750 data

chown mysql:mysql data

* 初始化数据库

cd /usr/local/mysql

bin/mysqld –defaults-file=/usr/local/mysql/etc/my.cnf –initialize

* 使用systemd管理mysql

例如:systemctl {start|stop|restart|status} mysqld

cd /usr/lib/systemd/system

touch mysqld.service

chmod 644 mysqld.service

vi mysqld.service

# 添加以下内容

[Unit]

Description=MySQL Server

Documentation=man:mysqld(7)

Documentation=

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

Type=forking

PIDFile=/usr/local/mysql/data/mysqld.pid

# Disable service start and stop timeout logic of systemd for mysqld service.

TimeoutSec=0

# Start main service

ExecStart=/usr/local/mysql/bin/mysqld –defaults-file=/usr/local/mysql/etc/my.cnf –daemonize –pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS

# Use this to switch malloc implementation

EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit

LimitNOFILE = 65535

Restart=on-failure

RestartPreventExitStatus=1

PrivateTmp=false

以上内容中注意:The –pid-file option specified in the my.cnf configuration file is ignored by systemd.

默认:LimitNOFILE = 5000,如果连接数(max_connection)需要调大,可以将LimitNOFILE 设置为最大65535

* 创建mysql.conf文件

cd /usr/lib/tmpfiles.d

#Add a configuration file for the systemd tmpfiles feature. The file is named mysql.conf and is placed in /usr/lib/tmpfiles.d.

cd /usr/lib/tmpfiles.d

touch mysql.conf

chmod 644 mysql.conf

* mysql.conf添加内容

vi mysql.conf

添加以下语句:

d /usr/local/mysql/data 0750 mysql mysql –

* 使新添加的mysqld服务开机启动

systemctl enable mysqld.service

* 手动启动mysqld

systemctl start mysqld

systemctl status mysqld

* 获得mysql临时登录密码

cat /usr/local/mysql/data/mysqld.err | grep “temporary password”

* 客户端登录连接mysql服务器

mysql -uroot -p

输入临时密码

* 修改MySQL用户root@localhost密码

mysql alter user root@localhost identified by ”; #此处为了方便设置为空密码

* 测试新密码连接MySQL服务

mysql -uroot -p

至此,我们就完成了在Linux环境下安装MySQL的任务。通过这两种方式我们可以体会到在Linux环境下安装软件的基本思路及方法。

linux环境下通过软链接变更mysql数据存储路径

想要改变mysql数据存储路径的想法最初是在生产服务器上mysql的数据放到了系统盘上,导致系统盘满额,没有足够的内存交换空间而死机。

将mysql数据存储到其他目录下有两种方法,方法一修改my.cnf配置文件,不过经过笔者通过网上的配置资料尝试总是不成功,环境是在centos7下操作的。后来想到一个简单的方法,通过linux的软链接将实际数据放到另外的目录里面就可以了。

操作系统是centos7

mysql是通过二进制包里面的rpm方式安装的。相当于全自动了。

先关闭mysql

默认情况下,rpm安装好的mysql会将数据放置在 /var/lib/mysql 目录当中,我们像将数据迁移到/mnt/data目录当中在terminal当中输入:

mv命令会直接将 /var/lib/mysql 文件夹直接剪切到 /mnt/data 目录当中。

这时我们需要回到/var/lib目录当中,

在这个目录当中建立软链接。

软链接相当于windows里面创建目录快捷方式是一样的,这个时候你应该可以看到mysql文件夹回到了 /var/lib 目录当中,要进去查看一下mysql的路径是否和my.cnf一致。

这时候我们再启动mysql

以上我们就将数据迁移到其他目录下,并且还没有修改和变更my.cnf文件。

《从0到1 最详细MySQL安装流程(Linux环境)

   查看服务器是否有自带的MySQL,如果有可以直接使用,如果自带的版本比较低,可以删除然后安装自己想要的版本 (在安装新版本MySQL之前,需要卸载服务器自带的MySQL包和MySQL数据库分支mariadb的包)

  1、rpm -qa|grep mysql — 查询服务器是否有mysql,如有,则执行下面的语句进行删除

  2、rpm -qa |grep mariadb — 查询服务器是否有mariadb,有则执行第三步进行删除

  3、rpm -e –nodeps 要删除的文件名( nodeps表示强制删除 )

   小贴士1: 如果使用rz命令时提示找不到命令,直接执行: yum -y install lrzsz 则可以在线下载。

   命令: rz 或者rz -be

   格式: rz -be 选择需要上传的文件

  批量或者单个上传文件,通过ZMODEM协议,除此之外,还可以通过ftp或者sftp进行上传

   按照下面的命令顺序执行,文件名修改成你压缩后的文件名称即可

   启动命令: systemctl start mysql

   报错信息: Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details.

   根据报错信息执行 : systemctl status mysqld.service” 或者 “journalctl -xe”命令查看报错详情,发现报错信息中存在: Data Dictionary upgrade from MySQL 5.7 in progress 。

  说明是因为新版本和之前服务器自带的版本对应的包存在冲突,删除对应的冲突目录即可,执行: rm -rf /var/lib/mysql/*(执行删除命令的时候要看清楚哦)

systemctl start mysql — 启动服务器

  第一次成功启动MySQL会被设置默认一个密码,通过以下命令查看并进行登录。

   1、查看第一次启动的临时密码 :grep password /var/log/mysqld.log

   2、连接到服务器 : mysql -u root -p 回车,然后输出密码

   3、第一次连接会强制你必须修改连接密码 ,可以使用以下的语句进行修改密码:

  ALTER USER root@localhost IDENTIFIED WITH caching_sha2_password BY ‘123456’; (MySQL8.x适合使用这个语句)

  UPDATE USER SET PASSWORD=PASSWORD(‘你的密码’) WHERE USER=’root’; (MySQL5.x版本的修改)

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/195810.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-02 20:37
下一篇 2024-12-02 20:37

相关推荐

  • Python栈操作用法介绍

    如果你是一位Python开发工程师,那么你必须掌握Python中的栈操作。在Python中,栈是一个容器,提供后进先出(LIFO)的原则。这篇文章将通过多个方面详细地阐述Pytho…

    编程 2025-04-29
  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • 如何部署一个服务到一个环境

    本文将从多个方面对如何部署一个服务到一个环境进行详细的阐述,包括环境准备、代码编写、打包部署等。 一、环境准备 1、确定部署环境的操作系统版本、运行时环境(如JDK、Node.js…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29
  • Python开发环境包括

    Python作为一门高效、易读易学的语言,已经被越来越多的开发者使用。而Python的开发环境也发展得越来越完善。本文将会从以下几个方面对Python开发环境包括做详细的阐述: 一…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • Python代码实现回文数最少操作次数

    本文将介绍如何使用Python解决一道经典的回文数问题:给定一个数n,按照一定规则对它进行若干次操作,使得n成为回文数,求最少的操作次数。 一、问题分析 首先,我们需要了解回文数的…

    编程 2025-04-29
  • Python磁盘操作全方位解析

    本篇文章将从多个方面对Python磁盘操作进行详细阐述,包括文件读写、文件夹创建、删除、文件搜索与遍历、文件重命名、移动、复制、文件权限修改等常用操作。 一、文件读写操作 文件读写…

    编程 2025-04-29

发表回复

登录后才能评论