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了
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
10.修改root本地登录密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改,输入命令
grep 'temporary password' /var/log/mysqld.log
得到初始密码:.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现在出现了。
解决办法:
在数据库连接加上 编码限制
修改之前:
修改之后:
新手操作,欢迎大家指教,喜欢的记得点赞哦