CentOS二进制安装Mysql

最后更新于:2023-04-14 11:12:58

Mysql官网:

https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/

5.7.34下载地址:

https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

官方文档:

https://dev.mysql.com/doc/refman/5.7/en/

【一】安装vim ,vi不能使用中文,故安装vim

安装vim

yum -y install vim*

用命令查看是否安装vim 这是已安装 显示5行

rpm -qa|grep vim

配置vim

vim /etc/vimrc

打开文件后,按 i 进入编辑模式,然后找一个位置添加如下代码

set nu          #设置显示行号
 
set showmode         #设置在命令行界面最下面显示当前模式等
 
set ruler          #在右下角显示光标所在的行数等信息
 
set autoindent         #设置每次单击Enter键后,光标移动到下一行时与上一行的起始字符对齐
 
syntax on         #即设置语法检测,当编辑C或者Shell脚本时,关键字会用特殊颜色显示  

添加好了之后,按Esc,然后输入

:wq

退出并保存即可

【二】配置mysql环境准备

配置yum源

cd /etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/epel-7.repo

yum clear all
yum makecache
yum -y install lrzsz net-tools

1、删除CentOS自带的mysql

rpm -qa | grep mariadb
rpm –e --nodeps mariadb*
rpm -qa | grep mysql
rpm –e --nodeps *mysql*
[rpm –e --nodeps mariadb-libs-5.5.68-1.el7.x86_64]

2、安装依赖包

rpm -qa | grep libaio
yum install libaio
yum install numactl 

3、关闭防火墙和SELINUX

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
firewall-cmd --state #查看默认防火墙状态
systemctl disable firewalld.service #禁止firewall开机启动
vim  /etc/sysconfig/selinux
SELINUX=disabled

【三】开始安装mysql

使用二进制安装包须使用root账号或者拥有sudo权限

1、上传下载的mysql安装包

cd /usr/local/src

rz 选择下载后的mysql包

2.、解压,将文件夹重命名为mysql:

tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql

3.、添加用户组和用户

#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -r -g mysql  -s /sbin/nologin mysql

4、 创建数据存放路径并授权目录下的data mysql文件夹

cd /usr/local
chown -R mysql:mysql mysql
cd /usr/local/mysql
mkdir data
chown -R mysql:mysql data
cd /usr/local/mysql
mkdir log
chown -R mysql:mysql log

5、加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了

vim /etc/profile
添加mysql路径,加入下面内容,按ESC-->:wq保存
export PATH=$PATH:/usr/local/mysql/bin
刷新立即生效
source /etc/profile

6、初始化mysql  [参数--initialize-insecure 则不生成临时密码]推荐用这种方式

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

7、配置参数文件my.cnf

vim /etc/my.cnf
[mysql]
default-character-set=utf8
socket=/tmp/mysql.sock
[mysqld]
port = 3306
socket=/tmp/mysql.sock
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
character-set-server=utf8
default-storage-engine=INNODB
innodb_buffer_pool_size = 200M
max_allowed_packet=16M
explicit_defaults_for_timestamp=1
log-output=FILE
general_log = 0
general_log_file=/usr/local/mysql/log/general.err
slow_query_log = ON
slow_query_log_file=/usr/local/mysql/log/query.err
long_query_time=10
log-error=/usr/local/mysql/log/error.err

8、配置systemd的mysql启动文件

vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 65536
LimitNPROC = 65536

9、设置mysql服务开机自启动

systemctl enable mysqld.service

重启mysql服务

systemctl restart mysqld.service

查看mysql服务当前状态

systemctl status mysqld.service

10、修改root用户密码,赋予远程访问权限,就可以使用了

mysql -uroot -p

密码为空,直接敲回车即可

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'z1024789';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'z1024789' WITH GRANT OPTION;
mysql> flush privileges;

退出mysql

quit 或者 exit

重启mysql服务

systemctl restart mysqld.service

11、调试命令 会直接把错误信息输出到屏幕上

mysqld –default-file=/etc/my.cnf 

12、设定及修改管理员密码:

mysqladmin –uroot –p password 要设置的密码
Enter password: #因为我们数据库现在没有密码,所以直接回车即可
mysqladmin –uroot –p password 新密码
Enter password:输入旧密码

13、管理员用户密码忘了怎么办?

①关闭数据库  

systemctl stop mysqld

②启动数据库到维护模式

mysqld_safe --skip-grant-tables --skip-networking &

③登录并修改密码

mysql
mysql> flush privileges;
mysql> alter user root@’localhost’ identified by ‘密码’;
mysql> exit

④启动数据库,正常启动验证

systemclt restart mysqld
mysql –uroot –p密码