Linux离线情况下安装mysql数据库

4 篇文章 0 订阅
4 篇文章 0 订阅

过程不需要联网
1、下载安装包
http://dev.mysql.com/downloads/mysql/#downloads
推荐下载通用安装方法的TAR包(https://pan.baidu.com/s/17_6rwVIIm3hJ2i8bEU9SKA  密码:b515)。

2.检查库文件是否存在,如有删除。
[root@localhost Desktop]$ rpm -qa | grep mysql
mysql-libs-5.1.52-1.el6_0.1.x86_64

[root@localhost ~]# rpm -e mysql-libs-5.1.52.x86_64--nodeps
[root@localhost ~]#

3.检查mysql组和用户是否存在,如无创建。
[root@localhost ~]# cat /etc/group | grep mysql
mysql:x:490:
[root@localhost ~]# cat /etc/passwd | grep mysql
mysql:x:496:490::/home/mysql:/bin/bash
以上为默认存在的情况,如无,执行添加命令:
[root@localhost ~]#groupadd mysql
[root@localhost ~]#useradd -r -g mysql mysql
//useradd -r参数表示mysql用户是系统用户,不可用于登录系统。

4.开始解压,。

[root@localhost ~]# mysql-5.7.21-linux-glibc2.5-x86_64.tar.gz

再解压,得到我们想要的,并解压到/usr/local/apps/

apps是我前面创建的用户存放应用

[root@localhost ~]# tar -zxvf mysql-5.7.21-linux-glibc2.5-x86_64.tar.gz -C  /usr/local/apps/

 

这时在program下得到的目录名很长,如果不想改名,则可以建立一个连接(类似于Windows快捷方式):

[root@localhost apps]# ln -s mysql-5.7.21-linux-glibc2.5-x86_64 mysql

这么配置后,就可以用/usr/local/apps/mysql来找到mysql的安装目录了

注意,如果mysql目录下没有data目录,手动建一个。用户存放数据

初始化

[root@localhost ~]# /usr/local/apps/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/apps/mysql/data --basedir=/usr/local/apps/mysql

时间可能长了一点,稍微等下.

[root@Ta-GVSM-M-016@00502 apps]# /usr/local/apps/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/apps/mysql/data --basedir=/usr/local/apps/mysql
如果执行完以上代码报如下错:
/usr/local/apps/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
请先安装:libaio-0.3.107-10.el6.x86_64.rpm
[root@Ta-GVSM-M-016@00502 ~]# rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
warning: libaio-0.3.107-10.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:libaio                 ########################################### [100%]
以上操作表示安装!

再次执行以下操作:
[root@Ta-GVSM-M-016@00502 apps]# /usr/local/apps/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/apps/mysql/data --basedir=/usr/local/apps/mysql
如果执行完报以下操作表示缺少:libnuma.so.1 文件
/usr/local/apps/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
下载并安装:numactl-2.0.9-2.el6.x86_64.rpm
[root@Ta-GVSM-M-016@00502 ~]# rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm 
warning: numactl-2.0.9-2.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing...                ########################################### [100%]
   1:numactl                ########################################### [100%]
以上展示说明安装成功!

没有ERROR信息跳过以上操作进入下一步

5、设置mysql以服务运行并且开机启动

将 /usr/local/apps/mysql/support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限

#cp mysql.server /etc/init.d/mysql

#chmod +x /etc/init.d/mysql

 把mysql注册为开机启动的服务

#chkconfig --add mysql

 当然也可以手动进行服务的开启和关闭:

#/etc/init.d/mysql start

#/etc/init.d/mysql stop

【添加本地配置】安装文件夹->本机

将mysql/support-files下的my-default.cnf改名为my.cnf,拷到/etc下      

[root@localhost ~]#cp /usr/local/apps/mysql/support-files/my-default.cnf   /etc/my.cnf

如果不存在my-default.cnf 请直接到/etc/my.cnf下寻找!!!

使用vi打开后编辑(以下仅为基础配置)

将三个都进行简单的配置可以解决不少bug,我前面踩了许多坑

[mysqld]

[mysql]

[client]

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]
character-set-server = utf8
basedir = /usr/local/apps/mysql
datadir = /usr/local/apps/mysql/data
port = 3306
socket = /usr/local/apps/mysql/tmp/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 [client]
default-character-set=utf8
socket=/usr/local/apps/mysql/tmp/mysql.sock

[mysql]
default-character-set=utf8
socket=/usr/local/apps/mysql/tmp/mysql.sock
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M


此外:socket =/usr/local/apps/mysql/tmp/mysql.sock,这里的tmp文件夹为自行创建

sock文件是用于建立两个程序之间的连接使用的。需要给与mysql用户(上文创建了)权限。

首先mkdirtmp,然后进入/usr/local/apps/mysql目录,修改权限

[root@localhost mysql]# chown -R mysql:mysql tmp

运行

#{mysql}/bin/mysqld_safe&

注:在这个启动脚本里已默认设置--user=mysql;在脚本末尾加&表示设置此进程为后台进程,区别就是在控制台输入bg,即可将当前进程转入后台,当前shell可进行其他操作。

 

客户端连接测试

[root@localhost mysql]# /usr/local/apps/mysql/bin/mysql -uroot -p

我在登陆时时出现了这个错误(密码不正确):

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

解决方法:

打开my.cnf文件

在[mysqld]下添加这么一行

skip-grant-tables

[mysqld]

character-set-server = utf8

basedir = /usr/local/apps/mysql

datadir = /usr/local/apps/mysql/data

port = 3306

socket = /usr/local/apps/mysql/tmp/mysql.sock

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

skip-grant-tables

 

跳过密码校验,这样登陆mysql就不需要密码了

然后使用sql语句修改root用户的密码

update mysql.user set authentication_string=password('123456') where user='root' ;

然后,再将skip-grant-tables从my.cnf文件中去掉,即可完成。

重启mysql服务

再次运行

service mysql restart

[root@localhost mysql]# /usr/local/apps/mysql/bin/mysql -uroot -p

就完成了 

最后还有一步,将MySQL加入环境变量

vim /etc/profile

#MySQL
export MYSQL_HOME=/usr/local/apps/mysql
export PATH=$PATH:$MYSQL_HOME/bin
添加在里面

然后 source /etc/profile

就可以在任意目录下使用 mysql -root -p 命令了

再授权所有其他主机都可访问

 

mysql>grant all on *.* to root@'%' identified by '123456'; 
mysql>flush privileges;
如果遇到ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement

解决方案:

 

安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个

step 1: SET PASSWORD = PASSWORD('your new password');

step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

step 3: flush privileges;

参考地址:https://blog.csdn.net/u012190514/article/details/80200771 
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 下载MySQL安装包 从MySQL官网下载适合您系统MySQL安装包,选择合适的版本和平台,例如:MySQL Community Server 5.7.30 Linux-Generic (x86, 64-bit), 并将其保存到本地。 2. 安装依赖包 在安装MySQL之前需要先安装一些依赖包,以Debian/Ubuntu系统为例: ``` sudo apt-get update sudo apt-get install libaio1 libnuma1 ``` 3. 解压MySQL安装包 使用以下命令解压MySQL安装包: ``` tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz ``` 4. 创建MySQL用户和组 使用以下命令创建MySQL用户和组: ``` groupadd mysql useradd -r -g mysql -s /bin/false mysql ``` 5. 移动MySQL文件 将解压的MySQL文件夹移动到/opt目录下: ``` sudo mv mysql-5.7.30-linux-glibc2.12-x86_64 /opt/mysql ``` 6. 配置MySQL 在/opt/mysql目录下创建my.cnf文件: ``` sudo vi /opt/mysql/my.cnf ``` 文件内容如下: ``` [mysqld] # 设置MySQL数据存储路径 datadir=/data/mysql/data # 设置MySQL日志存储路径 log-bin=/data/mysql/binlog/mysql-bin # 设置MySQL错误日志存储路径 log-error=/data/mysql/error/mysql.err # 设置MySQL socket文件存储路径 socket=/var/lib/mysql/mysql.sock # 设置MySQL字符集 character-set-server=utf8 # 设置MySQL端口 port=3306 # 设置MySQL最大连接数 max_connections=500 ``` 7. 创建MySQL数据存储目录 使用以下命令创建MySQL数据存储目录: ``` sudo mkdir -p /data/mysql/data sudo chown -R mysql:mysql /data/mysql ``` 8. 初始化MySQL 使用以下命令初始化MySQL: ``` cd /opt/mysql sudo ./bin/mysqld --defaults-file=/opt/mysql/my.cnf --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/mysql/data ``` 9. 启动MySQL 使用以下命令启动MySQL: ``` sudo /opt/mysql/support-files/mysql.server start ``` 10. 登录MySQL 使用以下命令登录MySQL: ``` /opt/mysql/bin/mysql -u root -p ``` 11. 修改MySQL root密码 使用以下命令修改MySQL root密码: ``` mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; ``` 12. 安装完成 至此,MySQL离线安装完成。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值