linux下mysql的tar包离线安装

linux下mysql的tar包离线安装

1.确保mysql安装之前有libaio依赖

yum search libaio 
yum install libaio

2.下载mysql的tar离线包

下载页面选择系统,linux-Generic

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

删除系统自带mariadb

[gz_admin@ ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[gz_admin@~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64

删除etc目录下的my.cnf文件

[gz_admin@ ~]# rm -rf  /etc/my.cnf

3.解压msyql安装包到指定目录下

tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz -C /usr/local

4.重命名项目,进入/usr/local目录

cd /usr/local
mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql

5.新建mysql数据及日志存放路径:

cd /data
mkdir mysql
cd mysql
mkdir data  # 存放mysql数据

6.修改配置文件

有的话直接修改,没有就创建

touch /etc/my.cnf
vim my.cnf

# 配置如下
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
port = 3306  # 设置3306端口
socket=/data/mysql/mysql.sock  # 套接字保存路径
basedir=/usr/local/mysql  # 设置mysql的安装目录
datadir=/data/mysql/data  # 设置mysql数据库的数据的存放目录
log-error=/data/mysql/error.log  # 报错日志路径
pid-file=/data/mysql/mysql.pid
max_connections=1000  # 允许最大连接数
character-set-server=utf8  # 服务端使用的字符集默认为8比特编码的latin1字符集

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
max_allowed_packet=1024M

[mysqld_safe]
socket=/data/mysql/mysql.sock

[client]
socket=/data/mysql/mysql.sock

[mysql.server]
socket=/data/mysql/mysql.sock

image-20200316183119983

7.创建mysql用户组

[gz_admin@ ~]# groupadd mysql
#创建一个用户名为mysql的用户并加入mysql用户组
[gz_admin@ ~]# useradd -g mysql mysql
#制定password 为 mysql123
[gz_admin@~]# passwd mysql
Changing password for user mysql.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.

8.修改mysql目录权限,命令如下:

chown -R mysql:mysql /usr/local/mysql  # 修改mysql属主给mysql用户
chown -R mysql:mysql /data/mysql  # 修改data属主给mysql用户
chmod -R 755 /data/mysql /usr/local/mysql  # 写入权限

9.安装初始化mysql,命令如下:

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

注释:
# 解压后的文件夹路径
--basedir=/usr/local/mysql

# 指定数据目录,初始化过程中会自动创建该目录
--datadir=/usr/local/mysql/data

注意,这一步会产生一个临时密码,需要到指定的日志文件日志中去查看。

10.将mysql进程放入系统进程中,命令如下:

修改/support-files/mysql.server文件

basedir=/usr/local/mysql
datadir=/data/mysql/data
mysqld_pid_file_path=/data/mysql/mysql.pid

拷贝到/etc/init.d/mysqld

cp support-files/mysql.server /etc/init.d/mysql

然后就可以使用此命令启动/关闭 mysql:

service mysql start
service mysql stop
service mysql restart

11.设置开机启动 在/etc/init.d文件夹下操作

cd /etc/init.d
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
service mysql restart

11.启动mysql

service mysql start
mysql -u root -p  # 输入密码进入

初始密码查看方法,进入配置中指定的日志文件,error.log

image-20200316200227321

12.设置mysql环境变量

vim /etc/profile
export PATH=$PATH:/usr/bin/mysql/bin
source /etc/profile

重置root密码

1.编辑MySQL配置文件my.cnf

vi /etc/my.cnf #编辑文件,找到[mysqld],在下面添加一行skip-grant-tables

[mysqld]
skip-grant-tables

:wq! #保存退出

service mysqld restart  #重启MySQL服务

2.进入MySQL控制台

mysql -uroot -p  #直接按回车,这时不需要输入root密码。

3.修改root密码

update mysql.user set password=password('123456') where User="root" and Host="localhost";
flush privileges; #刷新系统授权表
grant all on *.* to 'root'@'localhost' identified by '123456' with grant option;

4.取消/etc/my.cnf中的skip-grant-tables

vi /etc/my.cnf  编辑文件,找到[mysqld],删除skip-grant-tables这一行

:wq! #保存退出

5.重启mysql

service mysqld restart  #重启mysql,这个时候mysql的root密码已经修改为123456

6.进入mysql控制台

mysql -uroot -p #进入mysql控制台
123456 #输入密码

mysql服务开启远程访问

问题现象:使用mysql远程登录命令mysql –uroot –h192.168.1.102 –p时,报错MySQL ERROR 1130 (HY000): Host 'XXXX' is not allowed to connect to this MySQL server

问题原因:mysql服务器出于安全考虑,默认只允许本地登录数据库服务器。

问题解决:登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%",然后重启mysql这样就允许所有的远程机器进行访问了。
1.修改mysql表

mysql -u root -p
mysql>use mysql;
mysql>update user set host='%' where user='root';
mysql>flush privileges;

mysql>select host, user from user;
mysql>quit

2.重启mysql

mysql.server restart
原文地址:https://www.cnblogs.com/ryxiong-blog/p/12508133.html