CentOS安装MySQL

CentOS安装MySQL

版本:5.7.25-linux-glibc2.12-x86_64

1、卸载系统自带的mariaDB【重要】

#查看是否存在
rpm -qa|grep mariadb

#卸载
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64

#检查是否仍然存在
rpm -qa|grep mariadb

#删除默认的my.cnf
rm /etc/my.cnf

2、解压MySQL文件

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

3、移动MySQL文件夹

mv mysqlxxxxx /usr/local/mysql

4、创建用户和组

#创建组
groupadd mysql
#创建用户并添加到组
useradd -r -g mysql mysql
#授权
chown -R mysql:mysql /usr/local/mysql

5、编辑配置文件

vi /etc/my.cnf

datadir为数据库文件存储目录,尽量指定一个比较大的目录,这个目录也记得授权给mysql用户。

下面两个文件的目录也要同步修改

  • log-error
  • pid-file

修改最大连接数:

  • max_connections:最大连接数如果不修改 默认是100,根据实际情况修改
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8

log-error = /usr/local/mysql/data/mysqld.log
pid-file = /usr/local/mysql/data/mysqld.pid

lower_case_table_names = 1

max_connections=2000
:wq

注意前两行可能会丢失字符,检查好了再保存

6、初始化数据库

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

7、查看原始密码

cat /usr/local/mysql/data/mysqld.log

8、将启动脚本放到开机初始化目录

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

9、启动MySQL

service mysql start

10、使用默认的root账号密码登录MySQL

cd /usr/local/mysql/bin/
# 这里默认的密码很有可能有特殊字符 建议密码加上'' 如:./mysql -uroot -p'HDSUIYT%^*&AS'
./mysql -uroot -p<此处加上8中查到的密码>

11、修改root密码

mysql> set password=password('root');
mysql> grant all privileges on *.* to root@'%' identified by 'root';
mysql> flush privileges;

12、添加远程访问权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

13、重启MySQL

service mysql restart

14、【可选】创建用户和授权

1、进入mysql数据库下

mysql> use mysql
Database changed

2、对新用户增删改

1.创建用户:
# 指定ip:192.118.1.1的mjj用户登录
create user 'alex'@'192.118.1.1' identified by '123';
# 指定ip:192.118.1.开头的mjj用户登录
create user 'alex'@'192.118.1.%' identified by '123';
# 指定任何ip的mjj用户登录
create user 'alex'@'%' identified by '123';

2.删除用户
drop user '用户名'@'IP地址';


3.修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

4.修改密码
set password for '用户名'@'IP地址'=Password('新密码');

3、对当前的用户授权管理

#查看权限
show grants for '用户'@'IP地址'

#授权 mjj用户仅对db1.t1文件有查询、插入和更新的操作
grant select ,insert,update on db1.t1 to "alex"@'%';

# 表示有所有的权限,除了grant这个命令,这个命令是root才有的。mjj用户对db1下的t1文件有任意操作
grant all privileges  on db1.t1 to "alex"@'%';
#mjj用户对db1数据库中的文件执行任何操作
grant all privileges  on db1.* to "alex"@'%';
#mjj用户对所有数据库中文件有任何操作
grant all privileges  on *.*  to "alex"@'%';
 
#取消权限
 
# 取消mjj用户对db1的t1文件的任意操作
revoke all on db1.t1 from 'alex'@"%";  

# 取消来自远程服务器的mjj用户对数据库db1的所有表的所有权限

revoke all on db1.* from 'alex'@"%";  

取消来自远程服务器的mjj用户所有数据库的所有的表的权限
revoke all privileges on *.* from 'alex'@'%';

4、MySql备份命令行操作

# 备份:数据表结构+数据
mysqdump -u root db1 > db1.sql -p


# 备份:数据表结构
mysqdump -u root -d db1 > db1.sql -p

#导入现有的数据到某个数据库
#1.先创建一个新的数据库
create database db10;
# 2.将已有的数据库文件导入到db10数据库中
mysqdump -u root -d db10 < db1.sql -p

15、防火墙的开启和关闭

firewall-cmd --zone=public --add-port=3306/tcp --permanent   # 开放mysql端口
firewall-cmd --reload   # 配置立即生效<无论释放了哪个端口都要重新运行此命令>

此配置在重启后仍然生效

16、MySQL开机自启

首先科普一下:/etc/rc.local是用于配置启动系统时,执行的命令,它其实是一个软连接。其真正的位置在/etc/rc.d/rc.local。所以我们要先赋予这个文件权限。

#赋予启动文件权限(重要)
chmod 777 /etc/rc.d/rc.local

#编辑启动文件
vi /etc/rc.local

#添加如下内容 下面的mysql根据自己配置的服务名
service mysql start
posted @ 2022-06-08 16:40  张瑞丰  阅读(276)  评论(0编辑  收藏  举报