centos7.6与windows安装mysql与项目应用注意情况

安装与创建远程登陆

首先:一般CentOS默认安装了mariadb,所以先查看是否安装mariadb,如果安装就需要先卸载mariadb

rpm -qa|grep mariadb
rpm -e mariadb-libs --nodeps

1.png

然后:*在/usr/local/目录下创建mysql文件夹

cd /cd usr/localmkdir mysql`
2019111910233120.png

  1. 进入mysql文件夹内,下载mysql
cd mysql wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
  1. 解压mysql到当前目录
tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
2019111910233122.png
  1. 安装mysql,依次执行下列命令
rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm --nodeps --force  
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm --nodeps --force 
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm --nodeps --force
2019111910233123.jpg
  1. 初始化和相关启动服务配置,依次执行下列命令
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;

如果执行mysqld --initialize; 出现以下报错,先执行yum -y install numactl,再执行 yum install -y libaio,再执行mysqld --initialize

11.png

如果执行systemctl start mysqld.service; 出现以下报错,先执行tail -f /var/log/mysqld.log查看错误日志
12.png

如果错误日志如下,执行cd /var/lib/mysql,执行rm -rf *删除所有文件,再执行systemctl start mysqld.service
2019111910233126.png

  1. 查看数据库初始化密码
cat /var/log/mysqld.log | grep password

  1. 修改密码,密码需要数字,大小写字母,特殊符号
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';

设置密码永不过期.一定要记得执行下面代码刷新MySQL的系统权限相关表

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; 
flush privileges; 
  1. 创建远程访问用户,依次执行下列命令
create user 'root'@'%' identified with mysql_native_password by 'xxxxx';grant all privileges on *.* to 'root'@'%' with grant option;flush privileges;

vmware中的Centos 7.6安装mysql

  1. 下载mysql https://downloads.mysql.com/archives/community/2023.3现在还能打开。
    dde893e374bc901ab63d2077ed36d69b_1993414-20221111150449631-1264230631.png
  2. 放到服务器后解压-C 放到指定文件夹,进入/usr/local把解压的目录更改一下名字
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz  -C /usr/local
cd /usr/local
mv mysql-8.0.30-linux-glibc2.12-x86_64    mysql
  1. 创建mysql 用户和用户组
>groupadd mysql
>useradd -r -g mysql mysql
  1. 创建数据文件夹data,并给权限
>  mkdir -p /usr/local/data
# 给mysql用户权限
> chown -R mysql:mysql /usr/local/data
> chmod -R 755 /usr/local/data
  1. 给mysql的log目录权限
chown -R mysql:mysql /var/log
  1. 修改mysql配置文件 vi /etc/my.cnf
[mysqld]
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/data
socket=/tmp/mysql.sock
#socket=/data/mysql/mysql.sock
log-error=/var/log/mysql.err
pid-file=/var/log/mysql.pid
##character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
~                          
  1. 初始化mysql
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/data/ --user=mysql --initialize

  1. 查看mysql临时密码,并查看进程
cat /var/log/mysql.err
ps -ef|grep mysql
761da139e846d2a94d2a9e0660ef99dc_1993414-20221111153039064-469286312.png
  1. 登录mysql并设置远程登录功能,修改root密码。
    方式一:
bin]#./mysql -u root -p
password:随机密码
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xiong';
# 刷新权限
FLUSH PRIVILEGES;
#设置远程登录
mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit

方式二:创建root另一个用户%表示所有ip都可登录

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

> FLUSH PRIVILEGES;
use mysql;
>update user set user.Host='%' where user.User='root';
>flush privileges;

rpm格式的5.x版本的mysql安装示例
1.下载MySQL-5.5.56-1.el7.x86_64.rpm-bundle.tar
----本人已在csdn下载了,放在了百度网盘中。
2.tar -xvf解压产生很多rpm式的文件,我们只安装server ,client.

rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
//会有很多提示,要安装依赖包,要什么我们装什就完事了
yum install -y ***

3.查看安装成功否

rpm -qa|grep -i mysql

云主机上的问题

  1. 问题一
Starting MySQL. ERROR! The server quit without updating PID file (/var/log/mysql.pid).

项目应用情况注意:

  1. IDEA中mysql8.x注意时区设置问题,不设置容易出错。
    11 查看时区
    show VARIABLES like '%time_zone%';

    image.png

    time_zone: 表示 MySQL 采用的是系统的时区。也就是说,如果在连接时没有设置时区信息,就会采用这个时区配置。
    12仅修改当前会话的时区,停止会话失效(CET)

     set time_zone = '+8:00';
    

13 修改全局的时区配置

    set globaltime_zone = '+8:00';
    flush privileges;

大多数时候用到13.

windows安装mysql

  1. 下载下载地址:https://dev.mysql.com/downloads/mysql/
    image.png
  2. 解压到安装目录,在安装目录新建data目录和my.ini配置文件,并配置环境变量


    image.png

    my.ini文件

  # 设置3306端口
    port=3306
    # 设置mysql的安装目录
    basedir=D:\\soft\\mysql-8.0.27-winx64
    # 设置mysql数据库的数据的存放目录
    datadir=D:\\soft\\mysql-8.0.27-winx64\\data
    # 允许最大连接数
    max_connections=30
    # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
    max_connect_errors=10
    # 服务端使用的字符集默认为UTF8
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    [client]
    # 设置mysql客户端连接服务端时默认使用的端口
    port=3306
    default-character-set=utf8

在环境变量中新建:MYSQL_HOME,在path中加入:%MYSQL_HOME%\bin

image.png

image.png

  1. 以管理员的身份打开cmd窗口跳转路径到D:\soft\mysql-8.0.27-winx64\bin
    在窗口输入:mysqld --initialize --user=mysql --console,这一步会根据我们的配置文件初始化我们的mysql服务。最后可以看到,系统给我们分配了一个默认密码,记住这个密码,非常重要,后续会用到
    image.png

    输入mysqld -install进行服务的添加。
    (如果这一步报:Install/Remove of the Service Denied,就表示你没有用管理员身份打开cmd,C:\Windows\System32\cmd.exe用管理员身份启动即可解决)
    mysql服务。最后可以看到,系统给我们分配了一个默认密码,记住这个密码,非常重要,后续会用到。
    image.png

    输入mysqld -install进行服务的添加。
    (如果这一步报:Install/Remove of the Service Denied,就表示你没有用管理员身份打开cmd,C:\Windows\System32\cmd.exe用管理员身份启动即可解决)
    image.png

    输入net start mysql启动服务。
    image.png

    输入mysql -u root -p进行登录数据库,这时提示需要密码,然后就是用你上面的默认密码登录。
    修改密码语句:ALTER USER root@localhost IDENTIFIED BY '你的密码'; 。
    输入:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
    然后输入FLUSH PRIVILEGES;
    这两句是为了让你navicat连的时候,不报1251错误的。
  2. windows 配置mysql允许远程登陆。
    1.----连接Mysql (连接方式:mysql -u 你设置的用户名 -p你设置的密码 )
    2.----查看数据库:show databases;我们会看到有一个叫做"mysql"的数据库,这里我们输入: use mysql 进入'mysql'数据库中
    3.----执行 GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '你设置的密码' WITH GRANT OPTION;
    若出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
    解决方案:
    执行一次:mysql> flush privileges;
    然后再执行:GRANT ALL Privileges....语句。
    重启一下mysql服务
    注意:如果是云主机,远程不能连接,那么可能是,防火墙规则没有放行3306端口。我们要添加允许3306端口放行数据。
    image.png

4.----刷新, FLUSH PRIVILEGES;

centos 7安装mysql 5.7

下载需要的tar文件
你可以选择在官网下载你需要的包,或者使用我提供的网盘连接进行下载。笔者使用的版本在之前已经介绍,为5.7.38。如果你使用其他的版本可能会出现一些问题。比如5.7.22,说实话我失败了。

卸载mysql
嗯哼?嗯哼?嗯哼? 对,你的电脑可能确实安装了关于mysql,建议检查一遍,如果安装必须删除。不然报错!报错!错!!!!!!
先判断是否安装rpm快速包,如果存在就需要删除

rpm -qa | grep mysql
# 删除指令
rpm -e --nodeps <列出的数据> [列出的数据...]

往往这么删除是不够了,还需要查询系统里面关于mysql的文件如果你通过以上指令出现的结果多了,请通过rm -ef <文件名>删除多出的文件夹,如果你/usr/lib64/mysql文件不仅有plugin也请直接删除。

[root@musiro ~]# find / -name mysql
> /usr/lib64/mysql
> /etc/selinux/targeted/active/modules/100/mysql
[root@musiro ~]# ls /usr/lib64/mysql
> plugin

安装几个需要的依赖

gzip:用于第一步解压
perl libaio:mysql-server安装需要的依赖
yum install -y gzip perl libaio;

上传文件并解压文件
笔者将文件上传到/home/mysql/文件夹下,注意mysql的安装根文件的位置毛关系没有。所以放在你习惯的地方即可。解压文件

gzip mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar;
tar -zxvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar.gz

f579283136e75812441085da65f07133_2711625-20220913204608910-42974848.png

安装rpm文件
一定要注意顺序,顺序不对会报错。

rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm mysql-community-libs-5.7.38-1.el7.x86_64.rpm mysql-community-client-5.7.38-1.el7.x86_64.rpm mysql-community-server-5.7.38-1.el7.x86_64.rpm
# 如果出问题你就一个一个安装
rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm;
rpm -ivh mysql-community-libs-5.7.38-1.el7.x86_64.rpm;
rpm -ivh mysql-community-client-5.7.38-1.el7.x86_64.rpm;
rpm -ivh mysql-community-server-5.7.38-1.el7.x86_64.rpm;

如果安装的8.x版本,安装顺序为:

common
client-plugins
libs
client
icu-data-files
server

启动mysql
直接启动,千万不要玩花里胡哨的,比如初始化,授权等等,如果报错了让你知道什么叫做问题黑洞。

systemctl start mysqld

连接数据库

[root@musiro ~]# grep "password" /var/log/mysqld.log
[root@musiro ~]# mysql -uroot -p
右键粘贴即可,看不到的,后续操作要重设密码,密码不能设置太简单了,我是Xiong1983.包括一个点。
ALTER USER 'root'@'localhost' IDENTIFIED WITH  mysql_native_password BY 'Xiong1983.';

修改简单密码
如果你只是学习的目的使用mysql,不想设置复杂的mysql。OK这一步能够满足你的需求。先查看一下密码设置的要求

SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    | 名字检测
| validate_password_dictionary_file    |        | 字典文件
| validate_password_length             | 8      | 长度
| validate_password_mixed_case_count   | 1      | 字母
| validate_password_number_count       | 1      | 数字
| validate_password_policy             | MEDIUM | 难度
| validate_password_special_char_count | 1      | 字符
+--------------------------------------+--------+
- LOW -> 只有长度限制
- MEDIUM -> 除了字典文件其他都限制
- STRONG -> 全部

直接修改,只是临时起作用,重启系统,还是会恢复的。

set global validate_password_length = 5;
set global validate_password_policy = 0;

必须要写入/etc/my.cnf配置文件例才能永久生效

vi /etc/my.cnf在[mysqld]下加如下两行代码
---------------------------------------------------------------------------------------------------
validate_password_policy=0
validate_password_length=5

这样我们就可以改自已设的定码了,十分爽

ALTER USER 'root'@'localhost' IDENTIFIED BY 'xiong';

远程连接数据库

update user set host='%' where user='root';
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容