centos7 安装 mysql5.7 LTS
参考:
https://blog.csdn.net/EB_NUM/article/details/105425622
可以在运行安装程序之前导入密钥:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
第一步、下载MySQL 安装包:
sudo wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
第二步 安装mysql 安装源:
sudo yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
第三步,在线安装MySQL
sudo yum -y install mysql-community-server
第四步、启动mysql 服务
sudo systemctl start mysqld
第五步,设置开机启动
sudo systemctl enable mysqld
sudo systemctl daemon-reload
查看mysql 版本
mysql --version
首先登录 密码问题
修改密码
修改密码(可以根据自己兴趣爱好来设置)
执行下面的命令:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的密码’;
默认的配置文件
my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[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
# 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
数据库 initialize (先不用这个,先把它给忽略了)
之前初始化mysql数据库命令 mysql_install_db 从MySQL 5.7.6 开始废弃,使用 mysqld 初始化数据库
# which mysqld
# mysqld --verbose --help
-I, --initialize Create the default database and exit. Create a super user
with a random expired password and store it into the log.
--initialize-insecure
Create the default database and exit. Create a super user
with empty password.
–initialize 会在日志里打印出一个随机密码。
–initialize-insecure 不会产生随机密码,第一次登陆数据库使用空密码。
111
mysqld --initialize-insecure
在刚才的黑框中敲入mysqld --initialize-insecure,回车,稍微等待一会,
如果出现没有出现报错信息(如下图)则证明data目录初始化没有问题,
此时再查看MySQL目录下已经有data目录生成。
mysql -u root -p
1234aA~1
mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
在mysql5.7以上,mysql默认会产生随机密码,如果想达到5.6以下的第一次免登录密码,需要在 mysqld 加–initialize-insecure参数
修改密码
5.7之前的版本默认是没有密码的,只需在服务器上直接登录,甚至用户名都不用指定,
但除本机外网络是登不上的,5.7版本的话安装完后会生成 一个随机密码,
密码记录在log日志里,日志文件在/var/log/下,
由于MySQL从5.7开始不允许首次安装后,使用空密码进行登录,
系统会随机生成一个密码以供管理员首次登录使用,
所以本文教大家如何使用初始密码登录并修改初始密码
yum安装的mysql服务,密码记录在/var/log/mysqld.log文件中,使用下面的命令可以查看此密码:(其他安装方式请自己找到对应的mysqld.log位置)
cat /var/log/mysqld.log|grep 'A temporary password'
sudo grep ‘temporary password’ /var/log/mysqld.log
mysql -uroot -p
alter user 'root'@'localhost' identified by 'rootroot';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
-- 应用配置--将内存中的配置写入磁盘
flush privileges;
设置成下面这个样子
alter user 'root'@'localhost' identified by '1234aA~1';
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
注意:这个密码是强类型密码,要求密码包含大小写字母、数字及标点符号,长度应该在6位以上,不然就会失败。
修改密码策略
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
Query OK,0 rows affected (0.00 sec)
validate_password_length(密码长度)参数默认为8,我们修改为1
mysql> set global validate_password_length=1;
Query OK,0 rows affected (0.00 sec)
完成之后再次执行修改密码语句即可成功:
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK,0 rows affected (0.00 sec)
授权远程访问:
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
常用命令
查询所有的数据库
SHOW DATABASES;
创建数据库:
CREATE DATABASE 数据库名称;
创建数据库(判断,如果不存在则创建)
CREATE DATABASE IF NOT EXISTS 数据库名称;
删除数据库
DROP DATABASE 数据库名称;
删除数据库(判断,如果存在则删除)
DROP DATABASE IF EXISTS 数据库名称;
使用数据库
USE 数据库名称;
查看当前使用的数据库
SELECT DATABASE();
查询当前数据库下所有表名称
SHOW TABLES;
查询表结构
DESC 表名称;
删除表
DROP TABLE 表名;
删除表时判断表是否存在
DROP TABLE IF EXISTS 表名;
修改表名字
ALTER TABLE 表名 RENAME TO 新的表名;
– 将表名student修改为stu
alter table student rename to stu;
修改配置文件 /etc/my.cnf
如果修改了datadir,socket 可能也得修改
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
1 重启系统之后登录
查看服务是否正常运行
service mysqld status
mysql -u root -p
1234aA~1
2
启用防火墙systemctl start firewalld
查看防火墙状态systemctl status firewalld
停止防火墙systemctl stop firewalld
启用防火墙systemctl start firewalld
查看防火墙状态systemctl status firewalld
停止防火墙systemctl stop firewalld
禁用防火墙systemctl disable firewalld
启用防火墙systemctl enable firewalld
3
允许远程连接
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234aA~1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
用命令是什么?
1234aA~1
远程连接
mysql -h 192.168.99.69 -P 3306 -u root -p
查看 mysql 时区
show variables like '%time_zone%';