关于Linux下使用Mysql安装包进行安装的心得

       一直以来在linux中都是用的在线安装,这次使用安装包来安装,此过程中比较繁琐,但是学会后,在只有内网环境(不能上外网)的情况下也能安装mysql了,下面介绍安装步骤:

首先检查自己的Linux环境是否安装了mariadb(centos7一般会默认安装,此时需卸载,否则会与安装的msql发生未知的冲突)

rpm -qa | grep mariadb   //检查是否存在

rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64   //进行卸载

第一步:准备好mysql for linux环境下的安装包(可去官网下载)

官网地址:MySQL :: Download MySQL Community Server

我在此处用的是我经常用的版本作示例:mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

将安装包push到linux平台中,我是放在usr/local下,然后进行解压并改名,如下:

 解压并改名:

tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz //解压
mv mysql-5.7.34-linux-glibc2.12-x86_64 mysql  //改名为mysql

第二步:创建所需的几个文件夹及文件

(1)在usr/local/mysql下创建data文件夹,为数据目录,即创建的数据库都在此处
cd usr/local/mysql
mkdir data

(2)创建mysql组和mysql用户(删除原mysql用户:userdel -r mysql)
cat /etc/group | grep mysql   //查看是否已设置
cat /etc/passwd |grep mysql

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql

(3)在var中的log文件夹中创建文件mysqld.log,并对文件进行设置用户组及用户,授权操作
cd /var/log
touch mysqld.log
chown -R mysql:mysql /var/log
chmod 755 mysqld.log

(4)在tmp文件夹中创建mysql.sock文件,并对文件进行设置用户组及用户,授权操作
cd /tmp
touch mysql.sock
chown mysql:mysql mysql.sock
chmod 755 mysql.sock

(5)创建文件/tmp/mysqld/mysqld.pid:
mkdir mysqld
cd mysqld
touch mysqld.pid
cd ..
chown -R mysql:mysql mysqld
cd mysqld
chmod 755 mysqld.pid

第三步:由于之前卸载了mariadb,将my.cnf文件已经删除,因此需重新建立一个并进行配置

vi etc/my.cnf   //此时会新建my.cnf文件,将以下配置信息写入并保存即可

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
socket=/tmp/mysql.sock

symbolic-links=0
log-error=/var/log/mysqld.log
#pid-file=/tmp/mysqld/mysqld.pid(用这个总是启动报错)

pid-file=/var/run/mysqld/mysqld.pid #需要给予777权限
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
log-bin=mysql-bin 
binlog-format=ROW 
server_id=1 
max_connections=1000

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

 第四步:在mysql文件夹中的bin目录下,初始化msyql数据库,成功后进行初始安全启动mysql

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

-bash: ./mysqld: 权限不够
解决:chmod +x mysqld  (增加权限)(cd mysql   chmod 777 * -R)

添加环境目录

echo "export PATH=$PATH:/usr/local/mysql/bin"  >>  /etc/profile
source /etc/profile

复制 mysql.server 并输入命令编辑 mysqld 文件

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
vi /etc/init.d/mysqld

修改以下增加路径

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

./mysqld_safe --user=mysql &   //初始无密码,会在var/log的msyqld.log生产初始密码

查看是否启动成功

ps -ef | grep mysql
systemctl status mysqld.serrvice

通过查看log,可以找到安全初始密码
cat /var/log/mysqld.log

 第五步:进入mysql服务,提示更改密码

另:首次如何跳过密码

修改MySQL的登录设置:

# vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables

use mysql ;
update user set Password = password ( ‘new-password’ ) where User = ‘root’ ;
.

set password=password("root");

第六步:一些报错的解决 

/mysql -u root -p

报错:Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决1:vi  etc/my.cnf(在客户端增加socket=/tmp/mysql.sock)

[client]
socket=/tmp/mysql.sock

于是./mysql -u root -h127.0.0.1 -p可以正常进入,但是不带ip无法进入错误依旧

/etc/init.d/mysqld start
报错:Starting MySQL. ERROR! The server quit without updating PID file (/tmp/mysqld/mysqld.pid).

解决2:修改vi  etc/my.cnf pid文件的路径

修改root账户的权限,才可远程进行链接

mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';
mysql>flush privileges;

解决3:由于重启linux服务器后 重启mysql总是出现mysqld.pid丢失的情况而无法启动

pid-file=/var/run/mysqld/mysqld.pid   由于/var/run中是非块型内存,断电不保存,所以需更改路径

pid-file=/usr/local/mysql/mysqld/mysqld.pid  即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_59886041

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值