Linux(Centos7)离线安装mysql

2023-02-16 16:15:35 浏览数 (1)

MySQL 是一种数据库。数据库定义了存储信息的结构。以表的方式存储信息,设置有索引可以快速定位到需要的内容,避免查找数据时要遍历整个库,耗费资源速度也太慢。

索引:将表中的某一个或某些字段抽取出来,单独将其组织一个独特的数据结构中,类似一本书的目录;

为什么MySQL是最流行的数据库?

  • 简单:MySQL的使用简单,任何稍微有IT背景的技术人员都可以无师自通地参照文档安装运行和使用MySQL,这几乎没有什么门槛。
  • 开源:开源意味着安全和免费,代码就摆在那里,无数的技术爱好者一起来审核程序,一起修补问题,这让使用者非常的放心。同时,开源带来了免费。
  • 复制:MySQL从3.23.15这个版本开始,支持了replication,可以帮助MySQL使用者搭建Master-Slave的架构。把数据准实时的从一个实例同步到另一个实例。
  • 引擎:MySQL不同于其他多数数据库之处是它对插件式存储引擎的支持,这是一个开放的设计,有点兼容并包,海纳百川的感觉。

官方下载

网盘mysql5.7链接: 提取码:blvb

将下载好的文件拷贝到/usr/local目录下

安装:

  1. 建立一个mysql用户和mysql用户组
代码语言:javascript复制
# 添加mysql用户组
groupadd mysql
# 添加mysql用户
useradd -g mysql mysql -d /home/mysql
# 修改mysql用户的登陆密码
passwd mysql
  1. 解压
代码语言:javascript复制
cd /usr/local/
tar -xzvf /usr/local/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
# 改名为mysql
mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql
  1. 赋予用户读写权限
代码语言:javascript复制
chown -R mysql:mysql mysql/
  1. 创建配置文件
代码语言:javascript复制
vim /etc/my.cnf
代码语言:javascript复制
[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names = 1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

max_connections=5000

default-time_zone = ' 8:00'
  1. 初始化log文件,防止没有权限。
代码语言:javascript复制
#手动编辑一下日志文件,什么也不用写,直接保存退出
cd /var/log/

vim mysqld.log
:wq

chmod 777 mysqld.log
chown mysql:mysql mysqld.log
  1. 初始化pid文件,防止没有权限。
代码语言:javascript复制
#手动编辑一下日志文件,什么也不用写,直接保存退出
cd /var/run/
mkdir mysqld
cd mysqld
vi mysqld.pid
:wq
# 给权限
cd ..
chmod 777 mysqld
chown -R mysql:mysql ./mysqld
  1. 初始化数据库
代码语言:javascript复制
# 初始化数据库,并指定启动mysql的用户,否则就会在启动MySQL时出现权限不足的问题
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US

/var/log/mysqld.log 里面记录了root用户的随机密码。

代码语言:javascript复制
cat /var/log/mysqld.log

9. 启动数据库

代码语言:javascript复制
/usr/local/mysql/support-files/mysql.server start

并设置开机自启动服务:

代码语言:javascript复制
# 复制启动脚本到资源目录
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

# 增加mysqld服务控制脚本执行权限
chmod  x /etc/rc.d/init.d/mysqld

# 将mysqld服务加入到系统服务
chkconfig --add mysqld

# 检查mysqld服务是否已经生效
chkconfig --list mysqld

# 切换至mysql用户,启动mysql,或者稍后下一步再启动。
service mysqld start 

以后就可以使用service mysqld命令启动/停止服务:

代码语言:javascript复制
su mysql

service mysqld start/stop/restart
  1. 配置环境变量
代码语言:javascript复制
vim /etc/profile
#修改配置文件,增加export PATH=$PATH:/usr/local/mysql/bin,修改/etc/profile对所有用户都生效

source /etc/profile
代码语言:javascript复制
# 系统默认会查找/usr/bin下的命令;建立一个链接文件。
ln -s /usr/local/mysql/bin/mysql /usr/bin

# 登陆mysql的root用户
mysql -uroot -p
# 输入上边生成的 随机密码

# 修改root用户密码为123456
set password for root@localhost=password("123456");
  1. 设置远程主机登录
代码语言:javascript复制
grant all privileges on *.* to '新用户名'@'%' identified by '新密码';

flush privileges;

其中通配符%表示让该用户可以从任意远程主机登陆。

0 人点赞