CentOS 下安装Mysql5.7

本文提供了一步一步的指导来帮助你在CentOS系统上安装MySQL 5.7版本。从创建安装目录到配置环境变量,涵盖了用户组设置、编译安装、初始化数据库、设置开机启动和服务管理等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CentOS 下安装Mysql5.7

一、建立mysql安装目录及数据存放目录

# mkdir  -p  /usr/local/mysql/data

# mkdir  -p  /usr/local/mysql/install

# mkdir  -p  /usr/local/mysql/sock

 

二、创建用户和用户

#groupadd  mysql

#useradd  -g  mysql  mysql

 

三、赋予数据存放目录权限

#chown R  mysql.mysql  /usr/local/mysql/install

#chown R  mysql.mysql  /usr/local/mysql/sock

 

四、解压MYSQL

#tar zxvf mysql-5.7.14.tar.gz

 

五、编译MYSQL

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/install \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/sock/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/usr/local/boost/ \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306

 

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/install \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/sock/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_BOOST=/usr/local/boost/ \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_DATADIR=/home/mysql/data/ \

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306

 

#make

#make install

 

 

六、复制配置文件

5.7版本不需要此操作

 

# cp support-files/my-medium.cnf /etc/my.cnf

 

 

七、初始化数据库

 

5.7版本不需要此操作

# chmod 755 scripts/mysql_install_db   //执行前需赋给scripts/mysql_install_db文件执行权限

# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/install/ --datadir=/home/mysql/data

注:basedirmysql安装路径   datadir:数据库文件储存路径

5.6版本需要此操作(在安装目录)

./mysql_install_db --user=mysql --basedir=/usr/local/mysql/install --datadir=/home/mysql/data --pid-file=/home/mysql/data/mysql.pid

 

先去安装目录 cd /usr/local/mysql/install/bin

再执行数据库初始化

./mysqld --initialize   --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql/install --socket=/usr/local/mysql/sock/mysql.sock    

 //MySQL 5.7.6版本以前是 bin/mysql_install_db  --user

 

八、设置mysqld的开机启动

# cp  support-files/mysql.server  /etc/init.d/mysql

# chmod  755  /etc/init.d/mysql

# chkconfig  --add mysql

# chkconfig  mysql  on

 

 

增加数据库软连接

ln -s /usr/local/mysql/install/bin/mysql /usr/bin

ln -s /usr/local/mysql/install/bin/mysqladmin /usr/bin

可选配置:为MySQL配置环境变量

mysql的bin目录加到PATH中,有利于以后管理和维护,在/etc/profile中加入myslq/bin,同时增加两个别名方便操作:

# export PATH=/usr/local/mysql/bin:$PATH

# alias mysql_start="mysqld_safe &"

# alias mysql_stop="mysqladmin –u root -p shutdown"

九、启动mysql服务

# /etc/init.d/mysql start

 

十、为root帐户设置初始密码

 //第一次登录MySQL,密码文件在,也可以从make install 最后的一行看到密码

如不知密码,可能设置无密码登陆,/etc/my.cnf

[mysqld]

增加

skip-grant-tables

保存,重新重启mysql

进去重置密码

update user set authentication_string=PASSWORD('newpass') where User='root';

flush privileges;

初次登陆提示修改密码

set password=password(密码);

SET PASSWORD  FOR 'root'@localhost = PASSWORD('123456');

退出后,修改/etc/my.cnfskip-grant-tables注销 # skip-grant-tables

重启数据库 service mysql restart

十一、删除本机匿名连接的空密码帐号

注:先本机登录mysql

mysql>use mysql; //选择默认数据库mysql

mysql> SET PASSWORD = PASSWORD('brlf!@#123');

mysql>flush privileges;

mysql>exit

 

 

参考:设置MySQL远程连接

mysql>use mysql

mysql>select user,password,host from user;

mysql>update user set host = '192.168.%' where user = '127.0.0.1';

mysql>grant all privileges on *.* to root@'%' identified by "root123";//给以root@ip登录的远程连接赋予权限,能够连接数据库。远程无法连接的常见问题原因。并把远程登录用户的密码设置为root

mysql> flush privileges;

mysql>quit

 

 

 

MySQL 5.7版本sql_mode=only_full_group_by问题

 

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

 

修改my.cnf

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 HttpServletRequestWrapper 是 Java Servlet API 中的一个工具类,位于 javax.servlet.http 包中,用于对 HttpServletRequest 对象进行封装,从而在 Web 应用中实现对 HTTP 请求的拦截、修改或增强等功能。通过继承该类并覆盖相关方法,开发者可以轻松地自定义请求处理逻辑,例如修改请求参数、添加请求头、记录日志等。 参数过滤:在请求到达处理器之前,可以对请求参数进行检查或修改,例如去除 URL 编码、过滤敏感信息或进行安全检查。 请求头操作:可以修改或添加请求头,比如设置自定义的 Content-Type 或添加认证信息。 请求属性扩展:在原始请求的基础上添加自定义属性,供后续处理使用。 日志记录:在处理请求前记录请求信息,如 URL、参数、请求头等,便于调试和监控。 跨域支持:通过添加 CORS 相关的响应头,允许来自不同源的请求。 HttpServletRequestWrapper 通过继承 HttpServletRequest 接口并重写其方法来实现功能。开发者可以在重写的方法中添加自定义逻辑,例如在获取参数时进行过滤,或在读取请求体时进行解密。当调用这些方法时,实际上是调用了包装器中的方法,从而实现了对原始请求的修改或增强。 以下是一个简单的示例,展示如何创建一个用于过滤请求参数的包装器: 在 doFilter 方法中,可以使用 CustomRequestWrapper 包装原始请求: 这样,每当调用 getParameterValues 方法时,都会先经过自定义的过滤逻辑。 HttpServletRequestWrapper 是 Java Web 开发中一个强大的工具,它提供了灵活的扩展性,允许开发者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值