Mysql5.x 安装 配置(Linux)

时间:2022-09-09 10:24:51

一、准备环境

    1.1 Centos or Red Hat

    1.2 yum

    1.3 建议 新建一个mysql 用户,并切换mysql用户,在mysql用户目录下执行安装操作

    1.4 默认端口 3306

二、安装Mysql 5.x 步骤

    2.1 下载 5.x yum 源,此处我以 mysql5.7为例

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

    2.2 安装 mysql yum源

yum localinstall mysql57-community-release-el7-8.noarch.rpm

    2.3 检查mysql源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

Mysql5.x 安装 配置(Linux)

出现类似这种说明安装成功!

    2.4 如需修改MySQL默认安装版本

vi /etc/yum.repos.d/mysql-community.repo

如需安装5.5版本,将.repo配置文件中的5.7源的enabled=1改为enabled=0,然后再将5.5源的enabled=0改为enabled=1 后eq保存即可。

    2.5 安装 MySQL

yum install mysql-community-server

    2.6 启动 MySQL

systemctl start   mysqld #启动mysql

    2.7 MySQL常用命令

systemctl start   mysqld #启动mysql  
systemctl stop   mysqld  #停止mysql 
systemctl restart mysqld #重启mysql
systemctl status mysqld  # mysql启动状态

    2.8 修改MySQL ROOT默认密码

mysql安装完成后,通过以下命令找到mysql默认密码:

grep 'temporary password' /var/log/mysqld.log

Mysql5.x 安装 配置(Linux)

红框内就是默认root密码。

通过 mysql -uroot -p 命令链接mysql ,密码就是以上默认root密码

登录成功后出现   mysql> 

输入以下命令修改密码,admin123!!!...AAA 就是修改后的密码,自行修改,mysql5.7 自带密码强度设置插件,建议设置成大小写字母和数字和符号的混合密码,否则会设置失败,并报错:密码强度太弱。

 set password for 'root'@'localhost'=password('admin123!!!...AAA'); #设置密码
flush privileges;          #刷新权限

忘记密码时,可用如下方法重置:

1.先关闭mysql服务

2.重置命令 : 

mysqld_safe --user=root --skip-grant-tables --skip-networking &
3.登录命令:
mysql -u root

4.修改密码;

 set password for 'root'@'localhost'=password('admin123!!!...AAA'); #设置密码
flush privileges;          #刷新权限

验证:修改成功后台,然后输入  exit 命令断开mysql链接。重新通过 mysql -uroot -p 命令链接mysql ,输入你修改后的密码,出现 mysql>  说明修改成功!

三、MySQL 常见问题,常用配置

mysql使用时会出现几个常见的问题,提前通过以下配置来避免,修改配置文件时需要切换到root用户。

    3.1 mysql 最大连接数问题

用java开发的时候,项目出现 1040 too many connection 的错误,就是MySQL最大连接数设置的过小的原因,默认的mysql最大连接数为100,可以设置的最大连接数是:16384。进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100   修改为 max_connections=1000 重起MYSQL即可永久生效。

重新通过 mysql -uroot -p 命令链接mysql 输入以下命令验证value是1000就修改成功 :

show variables like 'max_connections'; #(查可以看当前的最大连接数) 

    3.2 mysql 表名忽略大小写问题

开发中,数据库中有张表为table_one,有些程序员使用 select * from TABLE_ONE ;忽略表名大小写查询,但是又没有设置mysql表名忽略大小写,程序就会一直报错,找不到表。查看大小写区分命令:

mysql> show variables like "%case%";

 Mysql5.x 安装 配置(Linux)

lower_case_table_names 的Value 为0表示不忽略表名大小写,为1表示忽略表名大小写,linux下mysql默认是 0 。

修改方法:

       3.2.1.用ROOT登录,vi  /etc/my.cnf
  3.2.2.在[mysqld]下加入一行:lower_case_table_names=1

  3.2.3.重新启动mysql即可生效

通过大小写区分命令查询 lower_case_table_names 为 1 说明修改成功,表示忽略表名大小写!

    3.3 mysql 客户端无法远程链接mysql服务

三个常见原因:

       3.3.1 mysql服务没开启,开启mysql即可


       3.3.2 mysql没有设置远程登录

查看mysql库中的user表

Mysql5.x 安装 配置(Linux)

mysql5.7安装默认是只允许本机访问mysql服务的。两种解决方法,根据运维需求自行选择。

1.将你需要远程链接mysql服务器的电脑或者服务器的IP加入user远程访问的白名单。

2.设置用户 root 可以在任意 IP 下被访问,命令:

grant all privileges on *.* to root@"%" identified by "new password";
  flush privileges;      #刷新权限


       3.3.3 防火墙未开放mysql的默认3306端口

请打开防火墙iptables 或者 firewall 开放mysql默认的3306端口

iptables开放3306端口命令 :

vi /etc/sysconfig/iptables             #修改iptables配置文件
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT          #添加主句后eq保存
service iptables restart           #重启防火墙使配置生效 

firewall开发3306端口命令:

firewall-cmd --permanent --add-port=3306/tcp         #开发80端口
firewall-cmd --reload                               #重启防火墙使配置生效 


    3.4 设置MySQL默认字符集为 UTF-8 (或 GBK等其他字符集)

修改mysql的配置文件:

vi /etc/my.cnf

在 [mysqld] 前添加如下代码:

[client]
default-character-set=utf8

在 [mysqld] 后添加如下代码:

character_set_server=utf8

然后登录 mysql>  输入以下命令查询

show variables like '%character%';

Mysql5.x 安装 配置(Linux)

像如上,出现6个 utf8 就算 设置成功

四、MySQL 常见文件默认路径

4.1 主配置文件  /etc/my.cnf

4.2 主日志文件 /var/log/mysqld.log

4.3 socket 文件 /var/run/mysqld/msyqld.pid

4.4 服务启动脚本 /usr/lib/systemd/system/mysqld.service

4.5 数据库文件存放目录 /var/lib/mysql/.

五、数据库加固

    https://blog.csdn.net/GGGoodLuck/article/details/79238006