centos7 mysql5.7优化_centos7 mysql 5.7安装配置

1.下载mysql源安装包

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

2.安装mysql源

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

3.检查mysql源是否安装成功

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

4.出现类似这样的就OK了

4023e74206a6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

5.可以修改MySQL安装源,改变默认安装的mysql版本。

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

比如要安装5 .6版本, 将5 .7源的enabled=1改成enabled=0。然后再将5 .6源的enabled=0改成enabled=1即可

6.正式安装mysql

yum install mysql-community-server

安装过程中,有选择的话就选yes就行了,即输入:y

7.启动MySQL

systemctl start mysqld

8.设置MySQL开机启动,执行下面两条命即可

systemctl enable mysqld

systemctl daemon-reload

9.查看mysql状态

systemctl status mysqld

4023e74206a6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

MySQL状态

10.修改root本地登录密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改,输入命令

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

4023e74206a6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Image [2].png

得到初始密码:.S7jyjR+#k(l

mysql -uroot -p

输入上面得到的密码进入MySQL命令模式,执行设置密码命令(ccc123456是我的密码,密码自行设置)

set password for 'root'@'localhost'=password('ccc123456!');

如果出现了:Your password does not satisfy the current policy requirements

执行命令:

set global validate_password_policy=0;

set password for 'root'@'localhost'=password('ccc123456!');

11.配置默认编码为utf8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置

vi /etc/my.cnf

在[mysqld]下面加上

character_set_server=utf8

init_connect='SET NAMES utf8'

不需要密码策略操作:

validate_password = off

12.设置远程访问权限

给192.168.0.101 远程访问权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.101' IDENTIFIED BY 'root用户的密码' WITH GRANT OPTION;

给任意IP 远程访问mysql权限

GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root用户的密码' WITH GRANT OPTION;

13.mysql其他配置

mysql_secure_installation

然后回弹出一写乱七八糟的,老夫看不懂,主要的就是:

(1)Set root password?[Y/n]y-------设置root用户密码-------因为前面没有设置密码,所以现在设置一下密码,输入:y 后面的操作比较简单,输入密码而已。

(2)Remove anonymous users? [Y/n] y -------删除匿名用户,这个选项看个人了 -------我选的是y

(3)Disallow root login remotely? [Y/n] y -------禁止root远程登录 -------这个我选的n

(4)Remove test database and access to it? [Y/n] y -------删除test数据库 ------- 这个我选的Y

(5)Reload privilege tables now? [Y/n] y ------- 刷新权限 -------我选的Y

14.默认配置文件路径:

配置文件:/etc/my.cnf

日志文件:/var/log//var/log/mysqld.log

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

socket文件:/var/run/mysqld/mysqld.pid

基本安装配置完成了,下面是一些使用过程中遇到的问题

附:

1.将mysql数据库表主键重置为1

TRUNCATE TABLE 表名

此操作会吧表的所有数据瞬间清空,主键id重置为1

2..分组查询的时候报错:which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

重点是这个 sql_mode=only_full_group_by,这时候修改一下mysql的配置文件:

vim /etc/my.cnf

如果里面存在配置sql_mode则修改为

sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

如果不存在的话就直接加上

sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

最后重启nysql服务解决问题

3.mysql中文乱码问题

服务端接收到的中文参数没有乱码,存入数据库的时候发现中文乱码了。

数据库的编码格式已经设置为utf-8 ,表的编码格式也是utf-8.

正常情况貌似不会出现乱码,but现在出现了。

解决办法:

在数据库连接加上 编码限制

修改之前:

4023e74206a6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

修改之后:

4023e74206a6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

新手操作,欢迎大家指教,喜欢的记得点赞哦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值