Linux下安装MySQL详细教程

现在一般企业,MySQL数据库用的还是比较多,具体的就不唠叨了,直接上Linux下安装MySQL的基础操作步骤:

1、检查Linux是否安装了mariadb数据库,mariadb数据库是mysql的分支

执行命令:
yum list installed | grep mariadb

2、如果Linux中安装了mariadb数据库,先卸载掉,因为CentOS 7.6 内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb

执行命令:
yum -y remove mariadb-libs.x86_64

3、开始安装mysql,首先从官网下载mysql软件压缩包,并上传到Linux的opt/soft 目录下,当然,也可以使用wget下载(不推荐这种方式,就不做过多的介绍了)
下载地址:https://downloads.mysql.com/archives/community/

解压下载下来的mysql软件压缩包,执行命令:
tar -zxvf /opt/mysoft/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local
mysql 8示例:
tar -xf /usr/local/mysoft/mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz -C /usr/local

4、将解压后的mysql-5.7.24-linux-glibc2.12-x86_64改名为mysql-5.7.24 或者 mysql,这个看个人习惯了,非必要操作

执行命令:
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql-5.7.24
mysql 8 示例:
mv mysql-8.0.35-linux-glibc2.28-x86_64 mysql8

5、在mysql-5.7.24文件夹目录下创建一个/data/3306文件夹,这个也看个人习惯了,也是非必要操作

切换到mysql-5.7.24目录,执行命令:
mkdir -vp ./data/3306 (v表示创建新目录都显示创建信息,p表示递归创建)

6、添加mysql用户及用户组

执行命令:
groupadd mysql
useradd mysql -g mysql (-g: 是指定用户所在组)

7、切换到mysql-5.7.24/bin目录下执行:

./mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql-5.7.24/data/3306 --basedir=/usr/local/mysql-5.7.24
–initialize-insecure表示不设置密码, root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option
mysql 8 示例:
./mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql8/data/3306 --basedir=/usr/local/mysql8 --lower-case-table-names=1

注:这里可能会遇到一个错误,前两年没问题,今天(20210529)再次安装mysql时发现有这个错误:
在这里插入图片描述

解决方法:使用yum install libaio 命令 install libaio library
在这里插入图片描述
再次执行就成功了,这里笔者使用的是13306端口:
在这里插入图片描述

8、在mysql-5.7.24/bin目录下

执行命令:
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.24/data/3306 (表示安全连接访问,生成RSA私钥)
mysql8示例:
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql8/data/3306

9、更改mysql-5.7.24整个文件夹目录权限所属

执行命令:
chown -R mysql:mysql /usr/local/mysql-5.7.24-R表示迭代递归)
mysql8示例:
chown -R mysql:mysql /usr/local/mysql8

10、在mysql-5.7.24/data/3306 目录下创建my.cnf文件

使用命令:vim my.cnf

[client]
port = 3306
socket = /usr/local/mysql-5.7.24/data/3306/mysql.sock
default-character-set=utf8

[mysqld]
port = 3306
socket = /usr/local/mysql-5.7.24/data/3306/mysql.sock
datadir = /usr/local/mysql-5.7.24/data/3306
log-error = /usr/local/mysql-5.7.24/data/3306/error.log
pid-file = /usr/local/mysql-5.7.24/data/3306/mysql.pid

character-set-server =utf8
#是否忽略大小写,unix下lower_case_table_names默认值为 0 ,Windows下默认值是 1(名称比较对大小写不敏感),Mac OS X下默认值是 2
lower_case_table_names = 1
#是否自动提交 0表示不自动提交 1表示自动提交,mysql事务支持的引擎是InnoDB,默认情况下autocommit的值为1
autocommit = 1

mysql8 示例:

[client]
port = 3306
socket = /usr/local/mysql8/data/3306/mysql.sock
default-character-set=utf8

[mysqld]
port = 3306
socket = /usr/local/mysql8/data/3306/mysql.sock
datadir = /usr/local/mysql8/data/3306
log-error = /usr/local/mysql8/data/3306/error.log
pid-file = /usr/local/mysql8/data/3306/mysql.pid

character-set-server =utf8
#是否忽略大小写,unix下lower_case_table_names默认值为 0 ,Windows下默认值是 1(名称比较对大小写不敏感),Mac OS X下默认值是 2  注:mysql8在初始化时也必须要设置该值
lower_case_table_names = 1
#是否自动提交 0表示不自动提交 1表示自动提交,mysql事务支持的引擎是InnoDB,默认情况下autocommit的值为1
autocommit = 1

至此MySQL安装完成。

11、启动MySQL服务

在mysql-5.7.24/bin目录下执行命令:
./mysqld_safe --defaults-file=/usr/local/mysql-5.7.24/data/3306/my.cnf & (其中 & 符号表示后台启动)
mysql8示例:
./mysqld_safe --defaults-file=/usr/local/mysql8/data/3306/my.cnf &

12、修改密码

登录进入mysql,在mysql-5.7.24/bin目录下执行命令:
./mysql -uroot -p -P3306 -h127.0.0.1
修改mysql的密码,执行:
alter user 'root'@'localhost' identified by '123456'

13、授权远程访问

  • 登录之后,执行命令:(这样远程客户端才能访问)
    grant all privileges on *.* to root@'%' identified by '123456'
    其中*.*的第一个 * 表示所有数据库名,第二个 * 表示所有的数据库表
    root@‘%’ 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.10.888

  • mysql8示例:
    MySQL 8.0已经不支持下面这种命令写法
    grant all privileges on *.* to root@"%" identified by ".";
    正确的写法是先创建用户
    CREATE USER 'root'@'%' IDENTIFIED BY 'password';
    再给用户授权
    grant all privileges on *.* to 'root'@'%' ;

  • 如果还不能远程访问,执行以下如下命令刷新权限:
    flush privileges;

  • 如果上面授权远程访问执行之后依然远程连接不上mysql,可能是Linux上防火墙拦截了,
    防火墙开放端口命令:
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    命令含义:
    –zone #作用域:查看当前的区域:firewall-cmd --get-default-zone
    –add-port=3306/tcp #添加端口,格式为:端口/通讯协议
    –permanent #永久生效,没有此参数重启后失效

  • 重新加载防火墙配置:firewall-cmd --reload

14、关闭MySQL服务

进入mysql-5.7.24/bin目录下执行命令:
./mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown

15、其他命令

mysql 5.5、mysql 5.6、mysql 5.7:默认的最大连接数都是151个,上限为:100000
mysql5.0版本:默认的最大连接数为100,上限为16384

查看mysql的最大连接数:
show variables like '%max_connections%'

查看当前连接数:
show global status like 'max_used_connections'

写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!

如果有什么问题,欢迎大家一起探讨,代码如有问题,欢迎各位大神指正!

给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!

  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值