赞
踩
【Liunx-后端开发软件安装】Liunx安装mysql:mysql的安装是每个java开发必备的能力,针对本地Windows的安装,基本人人都会,不做详解,本文主要是针对服务器是Liunx环境安装mysql的讲解。
官方下载地址:https://downloads.mysql.com/archives/community/
进入之后,找到自己需要的mysql版本,本文以5.7.44作为讲解
将文件上传到liunx服务器的/usr/local目录下面(目录可自行选择)
(1)解压文件
tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
(2)修改文件夹名称
mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql
(3)进入mysql文件夹下,新建一个data文件夹和一个log文件夹,用于存放mysql的相关数据和日志文件
mkdir -p data log
(4)授权
chmod -R 777 data log
chmod -R 777 是在 Linux 和类 Unix 操作系统中用来更改文件和目录权限的一个命令。这里的 -R 和 777 都是命令参数和选项的一部分,具体解释如下:
1)chmod:chmod 是英文 "change mode" 的缩写,即更改模式,主要用于修改文件和目录的权限模式。
2)-R:这是一个选项,表示递归(Recursive)。当与 -R 结合使用时,chmod 不仅会修改当前目录下的文件或目录权限,还会递归地修改其下所有子目录及其包含的文件的权限。
3)777:这是一个权限模式,采用的是三位八进制数的形式,每一位分别代表所有者(User/Owner)、组用户(Group)和其他用户(Others)的权限。在八进制权限系统中,每一位的数字组合代表了以下权限:
4(读取,Read)
2(写入,Write)
1(执行,Execute)
0(无任何权限)
因此,777 分解开来就是:
对于所有者(Owner):7 = 4 (读) + 2 (写) + 1 (执行),意味着所有者有读、写和执行权限。
对于组用户(Group):第二个7也是读、写、执行权限。
对于其他用户(Others):第三个7同样是读、写、执行权限。
总结一下,chmod -R 777 directory 命令会将指定目录及其所有子目录和文件的权限设置为对所有用户开放,即所有用户都可以读取、写入和执行目录内的所有文件。然而,这样的权限设置非常宽松,一般情况下不建议这样做,除非你确实需要让所有用户对该目录有完全的控制权限,因为在安全策略中,通常推荐遵循“最小权限原则”。
(5)创建用户、组信息
groupadd mysql
useradd -g mysql mysql
(6)修改etc配置文件,此处给了简单的基本配置
#主要部分 [mysqld] #数据库基本信息 basedir=/usr/local/mysql # MySQL服务器的安装基准目录 datadir=/usr/local/mysql/data # 数据库文件存放位置 socket=/tmp/mysql.sock # MySQL套接字文件的位置 pid-file=/usr/local/mysql/data/mysqld.pid # MySQL进程ID文件位置 #用户和安全相关 user=mysql # MySQL服务运行的系统用户 bind-address=0.0.0.0 # 绑定的IP地址,允许所有网络接口访问(或指定特定IP以限制访问) skip-name-resolve # 跳过DNS解析,加快连接速度,如果不需要主机名解析可启用 #secure_file_priv="" # 设置导入导出数据的安全目录,默认为空表示禁止任何文件导入导出,或指定目录 #性能优化相关 innodb_buffer_pool_size=1G # InnoDB存储引擎的缓冲池大小,通常设为机器内存的50%-70% max_connections=200 # 最大并发连接数 query_cache_size=0 # MySQL 8.0已废弃查询缓存,旧版本可根据实际情况设置查询缓存大小 tmp_table_size=64M # 临时表的最大大小 max_heap_table_size=64M # 内存表的最大大小 #日志相关 slow_query_log=1 # 开启慢查询日志 slow_query_log_file=/usr/local/mysql/log/slow.log # 慢查询日志文件位置 log_error=/usr/local/mysql/log/error.log # 错误日志文件位置 #线程和事务 thread_cache_size=8 # 线程缓存大小 innodb_flush_log_at_trx_commit=1 # 控制事务提交时日志刷新至磁盘的策略,1代表每次提交都同步,0或2代表减少同步次数以提高性能但降低数据安全性 #其他可能的配置项(根据具体需求调整) character-set-server=utf8mb4 # 默认服务器字符集 collation-server=utf8mb4_unicode_ci # 默认服务器排序规则 default-storage-engine=InnoDB # 默认存储引擎
注意:其中的socket=/tmp/mysql.sock需要按照这样填写(安装简单点),因为MySQL的套接字文件(socket file)在Linux系统中用于实现本地快速、高效的进程间通信,尤其是在同一台服务器上运行的应用程序(如PHP、Python等)与MySQL服务器之间的连接。
默认情况下,MySQL套接字文件常常被配置在 /tmp 目录下,例如 socket=/tmp/mysql.sock,原因如下:
1)传统约定: 很多Linux系统和应用程序默认会查找 /tmp 目录下的MySQL套接字文件来进行本地连接。这种约定历史悠久,许多教程、文档和应用程序默认都遵循这一约定。
2)权限和安全性: /tmp 目录通常对所有用户都是可写的,而且系统会在启动时自动清理其中的内容,这使得MySQL服务器可以方便地在重启后重新创建套接字文件,而不需要特别高的权限。
3)跨平台兼容性: /tmp 目录在多种类Unix系统中普遍存在,将其作为套接字文件的默认位置有助于提高跨不同Linux发行版的兼容性。
尽管如此,出于安全或管理原因,也可以根据实际情况将MySQL套接字文件配置在其他目录下,比如 /var/run/mysqld/mysqld.sock 或者 /var/lib/mysql/mysql.sock。在更改配置后,需要确保相关应用程序在连接MySQL时使用正确的套接字文件路径,或者更新环境变量(如 MYSQL_UNIX_PORT)来指向新的套接字文件路径。
(7)进入mysql的bin目录,执行以下命令生成默认登录密码
目录需要根据自己mysql的实际目录填写
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/
(8)查看生成的默认密码,用于后面登录时使用
cat /usr/local/mysql/log/error.log
(9)添加软连接,为了确保在任意目录下我们都可以启动mysql
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
这个命令在Linux系统中执行的目的主要是为了将MySQL的启动脚本链接到系统服务启动目录下,以便能够通过系统服务管理工具(如System V init或Systemd)来控制MySQL服务的启动、停止、重启和状态检查。
具体来说:
1)ln -s 是Linux下的创建符号链接(symbolic link)的命令,符号链接类似于Windows下的快捷方式,它指向另一个文件或目录。
2)/usr/local/mysql/support-files/mysql.server 是MySQL安装目录下的一个启动脚本,通常用来启动、停止MySQL服务器。
3)/etc/init.d/mysql 是Linux系统传统的服务脚本存放位置,系统服务管理工具会在这里查找服务的启动脚本。
通过执行上述命令,MySQL的启动脚本就被链接到了系统服务脚本目录下,这样就可以通过执行诸如service mysql start、service mysql stop之类的命令来管理系统中的MySQL服务,使其能够在系统启动时自动启动,并在需要时方便地进行服务管理操作。在现代Linux系统中,特别是使用Systemd的系统,可能需要将启动脚本放入Systemd的unit文件目录并在那里配置MySQL服务。
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
这条命令在Linux系统中的目的是创建一个符号链接(软链接),即将MySQL客户端程序mysql的完整路径 /usr/local/mysql/bin/mysql 创建一个快捷链接到系统常用命令路径 /usr/bin/mysql。
具体目的如下:
1)简化命令使用: /usr/bin 是大多数Linux系统中环境变量 $PATH 默认包含的路径之一。当一个命令存在于这个目录下时,用户可以在任何地方直接运行该命令,无需指定完整的路径。通过创建符号链接,MySQL客户端命令mysql可以被当作普通命令在任何目录下直接调用,无需事先切换到MySQL的bin目录。
2)一致性与便利性:对于开发人员和系统管理员来说,将常用的命令放到 /usr/bin 中是一种常见做法,有助于保持命令的一致性,便于管理和记忆。
3)跨环境兼容:在一些环境中,默认会查找 /usr/bin 下的命令,通过创建链接,确保无论MySQL安装在何处,都可以统一使用 mysql 命令。
因此,执行上述命令的主要目的是为了让用户能够在任何目录下都能直接通过 mysql 命令来访问MySQL客户端程序,提升工作效率和命令的可移植性。
(10)启动mysql
通过上面创建的软连接,现在就可以在任何目录下启动mysql了
启动
service mysql start
重启
service mysql restart
停止
service mysql stop
(11)登录mysql
mysql -uroot -p
回车后输入密码即可登陆(前面cat /usr/local/mysql/log/error.log中的密码--步骤(8))
(12)修改密码
set password=password('你需要设置的密码');
#使修改生效
flush privileges;
(13)修改远程连接策略
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' IDENTIFIED BY 'your_password';
#使修改生效
FLUSH PRIVILEGES;
上面的命令用于向特定用户授予数据库的全部权限,并允许该用户从任何主机进行连接。这条命令的各个部分功能如下:
1)GRANT: 这是MySQL中用于授权(分配权限)的关键字。
2)ALL PRIVILEGES: 这表示授予用户的所有可能权限。包括但不限于:SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、ALTER、INDEX、EXECUTE、CREATE VIEW、SHOW VIEW、TRIGGER、CREATE ROUTINE、ALTER ROUTINE、EVENT、TRIGGER等。
3)ON .: 这里指定了权限作用的对象范围。*.* 表示所有数据库的所有表。* 第一个星号代表所有数据库(database),第二个星号代表该数据库内的所有表(table)。
4)TO 'your_username': 这是你要授权的MySQL用户名。
5)'%': 这是一个通配符,表示允许该用户从任何IP地址或主机名进行连接。如果替换成具体的IP地址或主机名,如 'your_username'@'localhost',则只允许从localhost进行连接。
6)IDENTIFIED BY 'your_password': 这表明该用户连接时使用的密码是 'your_password'。在执行这条命令后,指定的用户将可以使用这个密码从任何主机登录,并对所有数据库的所有表具有所有权限。
执行这条命令后,名为 'your_username' 的用户将具备对所有数据库的所有表的完全访问权限,并可以从任何网络位置登录MySQL服务器。在生产环境中,为了安全性考虑,通常不会给予用户如此广泛的权限,而是根据实际需求分配合适的权限,并限制用户来源。
(14)开放端口使其它电脑能连接到安装的mysql服务器上
机房服务器:检查防火墙状态,如果开启了就需要开放端口
#检查防火墙状态
systemctl status firewalld.service
#增加防火墙开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#配置生效
firewall-cmd --reload
#重启防火墙
systemctl restart firewalld.service
云服务器
配置安全组
以上就是安装包安装过程,安装完成可以使用工具连接试试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。