[mysql] 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
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
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