下载mysql yum包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
安转软件源
xxx.rpm是刚刚下载的yum包
sudo rpm -Uvh xxx.rpm
安装mysql服务端
yum install -y mysql-community-server
启动mysql服务
service mysqld start
(重启是restart,完全弄好MySQL后最好添加lower_case_table_names=1到[mysqld]下面一行然后重启MySQL,这是为了和windows兼容,还有就是在[mysql]下面一行加入default-character-set=utf8)
systemctl start mysqld.service(这个是上面步骤执行后自动输出的,我这边的全称是:Redirecting to /bin/systemctl start mysqld.service)
然后回到[.....]#
检查mysql运行状态
service mysqld status
systemctl status mysqld.service(也是系统自动输出的,我这边全称是:Redirecting to /bin/systemctl status mysqld.service)
然后会输出一大段关于MySQL状态的信息:
修改临时密码
Mysql5.7默认安装之后root是有密码的。
为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。
只有启动过一次mysql才可以查看临时密码
grep 'temporary password' /var/log/mysqld.log
(如果之前安装过MySQL则这里可能会有多个密码,用最后一个,注意这个密码输入时是可以粘贴的)
登录并修改密码
mysql -uroot -p
(这是一个MySQL的以密码登录root用户的命令)
进入mysql命令行之后:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';
如果密码设置太简单出现以下的提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
必须修改两个全局参数:
首先,修改validate_password_policy参数的值:set global validate_password_policy=0;
再修改密码的长度:set global validate_password_length=1;
再次执行修改密码就可以了
授权其他机器登录
进入mysql命令行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
日志配置
在mysql配置文件(/etc/my.cnf)中写入:
general_log=1
general_log_file=/usr/local/mysql/mysql-5.7.22/log/general.log
slow_query_log=1
slow_query_log_file=/usr/local/mysql/mysql-5.7.22/log/slowqueries.log
long_query_time=5
log_output=’FILE,TABLE’
以上配置功能为:
general_log=1 开启通用日志
general_log_file=/usr/local/mysql/mysql-5.7.22/log/general.log 通用日志地址
slow_query_log=1 开启慢查询日志
slow_query_log_file=/usr/local/mysql/mysql-5.7.22/log/slowqueries.log 慢查询日志地址
long_query_time=5 慢查询阀值
log_output=’FILE,TABLE’ 输出方式,FILE表示文件,TABLE表示数据库(可以在mysql库中看到日志),可以同时使用,方法如上,也可单独使用比如log_output=’FILE’。输出到文件比输出到数据库效率高。
注意:mysql不会主动去创建日志文件,所以需要手动添加,添加完成后赋予所有用户可读可写权限,chmod 777 log文件,否则会报premission denied。
修改完成后重启mysql:service mysql restart
强行修改密码
systemctl stop mysqld
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mysqld
mysql -u root
UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPassword') WHERE User = 'root' AND Host = 'localhost';
注:如果显示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,说明你的密码不符合安全要求,
FLUSH PRIVILEGES;
quit;