CentOS7默认数据库是mariadb, 但是 好多用的都是mysql ,但是CentOS7的yum源中默认好像是没有mysql的。
上一篇安装的是5.6的但是我想安装5.7的 yum安装是最简单的 尝试过编译安装各种问题,最后就决定用yum。
(经过一段时间的学习又写了一篇用源码安装mysql5.7.22的 点击打开链接)
1.卸载 先停掉mysql进程 没有安装过的可以直接跳过
pkill -9 mysqld
rpm -qa|grep -i mysql
用命令 yum -y remove
yum -y remove mysql-community-client-5.6.38-2.el7.x86_64
卸载不掉的用 rpm -ev
依次卸载 直到没有
2.下载mysql的repo源 这个安装的mysql5.7.20 /**纠正一下,这源下载的是最新的版本 ****/
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
[root@localhost src]# rpm
-ivh mysql57-community-release-el7-8.noarch.rpm
[root@localhost src]# yum
-y install mysql-server
(也可以指定安装目录 yum --installroot=/usr/local/mysql
--releasever=/ -y install mysql-server )我没试,这样装环境变量配置都不用你管,装上直接启动就行。安装路径是默认的。
一路 y
根据步骤安装就可以了,
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
配置 my.cnf
vim /etc/my.cnf
- [mysqld]
- #
- # Remove leading # and set to the amount of RAM for the most
important data - # cache in MySQL. Start at 70% of total RAM for dedicated
server, else 10%. - # innodb_buffer_pool_size = 128M
- #
- # Remove leading # to turn on a very important data integrity
option: logging - # changes to the binary log between backups.
- # log_bin
- #
- # Remove leading # to set options mainly useful for reporting
servers. - # The server defaults are faster for transactions and fast
SELECTs. - # Adjust sizes as needed, experiment to find the optimal
values. - # join_buffer_size = 128M
- # sort_buffer_size = 2M
- # read_rnd_buffer_size = 2M
- datadir=/var/lib/mysql
- socket=/var/lib/mysql/mysql.sock
- server_id = 1
- expire_logs_days = 3
- # Disabling symbolic-links is recommended to prevent assorted
security risks - symbolic-links=0
- log-error=/var/log/mysqld.log
- pid-file=/var/run/mysqld/mysqld.pid
不过安装完成后,密码为随机密码,需要重置密码。
4. 启动mysql服务
service mysqld restart
重置密码
[root@localhost
~]# grep "password" /var/log/mysqld.log
可以看到 输入 mysql -u
root -p 密码
进入 第一次登陆 ,需要重置密码 要不什么也不能操作
接下来重置密码:5.7.20
为了安全密码 必须包含 数字字母符号
踩过的坑啊,设置了好几次。还有这ip不能是% 不知道为什么 反正第一次设置成%没成功 登上去之后再改就可以改了。
把密码改简单的方法
http://blog.csdn.net/z13615480737/article/details/78907697
alter user
'root'@'localhost' identified by 'Root!!2018';
最后记得刷新权限;
flush privileges
也可以 直接再添加新用户
1. iptables放开3306端口
/sbin/iptables -I INPUT -p tcp --dport 3306
-j ACCEPT
/etc/rc.d/init.d/iptables save
2.本地登录mysql,在'mysql'这个数据库里执行GRANT
ALL ON *.* to user@'IP' IDENTIFIED BY 'password'; 其中,user表示用户,对我来说就是root,IP表示登录机器的ip,由于我的电脑是DHCP,就直接写了个通配符%.
password该用户对应的密码.
所以我的命令就是grant all privileges on *.* to 'root'@'%' identified by '*****' with
grant option;
增加root用户指定可以任意IP登录,如果想限制只能让指定IP登录请把%替换成IP地址
3.执行以下这个,FLUSH
PRIVILEGES; 不然可能会有问题.
4.重启mysql, service
mysqld restart.
问题:如果发现找不到密码!!!!!
解决:只能通过忘记密码的方式修改密码!!! 在安装的过程中发现找不到密码???折腾了好长时间
通过修改密码找回之后发现、原来之前安装的数据库在了,就没有生产新的数据库!!用的还是之前的配置。
2.看mysql启动了没?初始化数据库了没? 一般直接启动
数据库 就可以 用grep
"password" /var/log/mysqld.log 看到随机密码了
修改MySQL的登录设置:
#vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。
重新启动mysqld
重新启动mysqld
#/etc/init.d/mysqld restart ( service mysqld restart )
use mysql
update user set password=password("12345") where
user="root";
mysql 5.7的数据库没有了password字段
用的是authentication_string字段
mysql> update mysql.user set authentication_string=password('root') where
user='root' ;
flush privileges;
修改密码之后在改回来