Mysql
安装Mysql
-
环境 版本 Redhat/Centos 7.0 mysql 5.7 -
查看mysql软件
#看mysql进程
ps -ef | grep mysqld
#查看mysql软件信息
rpm -qa | grep mysql
yum repolist all | grep mysql
- 卸载mysql
#卸载mysql
yum remove -y mysql mysql-libs mysql-common
#删除mysql下的数据文件
rm -rf /var/lib/mysql
#删除mysql配置文件
rm -rf /etc/my.cnf
#删除组件
yum remove -y mysql*
- 安装mysql
#下载mysql
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
#执行rpm源文件
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
#使用此命令可以查看 MySQL Yum 存储库中的所有子存储库,并查看其中哪些子存储库已启用或禁用
yum repolist all | grep mysql
#关闭mysql8的下载源
#yum-config-manager找不到 通过命令安装 yum -y install yum-utils
yum-config-manager --disable mysql80-community
#开启mysql5.7下载源
yum-config-manager --enable mysql57-community
#安装mysql5.7
yum install -y mysql-community-server
- 配置mysql
vim /etc/my.cnf
[mysqld]
# MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写
# 0:大小写敏感 1:大小写不敏感
lower_case_table_names=1
# 默认字符集
character-set-server=utf8
- 启动mysql
- (启动之前先看下下面的启动问题一,问题二一般是因为安装完成后直接启动导致的,建议先按照问题一处理完成后重启系统,重启系统后mysqld进程应该会自动启动,可以直接查看修改密码的步骤)
systemctl start mysqld
-
启动报错
-
-
selinux安全模式限制了启动,解决方法如下:
-
查看SELinux状态
#getenforce 命令是单词get(获取)和enforce(执行)连写,可查看selinux状态,与setenforce命令相反。 #setenforce 命令则是单词set(设置)和enforce(执行)连写,用于设置selinux防火墙状态,如: setenforce 0用于关闭selinux防火墙,但重启后失效 getenforce #可能结果: #状态码Enforcing 强 #状态码Disabled 禁用
/usr/sbin/sestatus #可能结果: #SELinux status: enabled #SELinuxfs mount: /sys/fs/selinux #SELinux root directory: /etc/selinux #Loaded policy name: targeted #Current mode: enforcing #Mode from config file: enforcing #Policy MLS status: enabled #Policy deny_unknown status: allowed #Max kernel policy version: 28 #SELinux status:selinux防火墙的状态,enabled表示启用selinux防火墙 #Current mode: selinux防火墙当前的安全策略,enforcing 表示强
-
关闭SELinux
#临时关闭,用于关闭selinux防火墙,但重启后失效。 setenforce 0 --------------------------------------------------------- #永久关闭,修改selinux的配置文件,重启后生效。 vim /etc/selinux/config SELINUX=enforcing =修改为> SELINUX=disabled reboot service mysqld start
-
-
-
-
错误原因是因为数据库启动时已经进行初始化了,所以不能再进行初始化用户了,因为mysql在初始化的时候会自动创建一个root用户的。
-
解决办法
-
#停止数据库 systemctl stop mysql.service #在配置文件中找到数据目录 vi /etc/my.cnf #找到datadir配置 用于指定数据目录 默认/var/lib/mysql rm -rf /var/lib/mysql #删除后重新进行初始化 mysqld --initialize --user=mysql service mysqld start
-
-
-
设置root用户密码
-
安装了mysql5.7之后初始密码不再默认为空,初始密码会生成一个默认密码。密码会输出到mysql日志 中。
-
日志文件的位置在 /var/log/mysqld.log
#查找log文件默认密码 cat /var/log/mysqld.log | grep 'temporary password'
-
-u和用户名 -p和密码没空格
#1.登录mysql
[root@localhost ~]# mysql -uroot -p't)WMH;uUe9Jn'
#修改密码
mysql> alter user 'root'@'localhost' identified by 'root';
#如果修改失败 尝试用下面方式设置密码强度
#设置密码长度最低位数
mysql> set global validate_password_length=4;
#设置密码强度级别
mysql> set global validate_password_policy=0;
#默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特 殊字符。
Policy Tests Performe
0 or LOW Length
1 or MEDIUM numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters
-
远程连接授权
-
授权命令
-
#示例 grant 权限 on 数据库对象 to 用户
-
#授予root用户对所有数据库对象的全部操作权限: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; #刷新权限 FLUSH PRIVILEGES; #查看权限 show grants;
-
命令说明:
-
ALL PRIVILEGES :表示授予所有的权限,此处可以指定具体的授权权限。
-
*.* :表示所有库中的所有表
-
‘root’@’%’ : root是数据库的用户名,%表示是任意ip地址,可以指定具体ip地址。
-
IDENTIFIED BY ‘mypassword’ :mypassword是数据库的密码。
-
-
防火墙策略
-
关闭linux的防火墙
-
systemctl stop firewalld(默认) systemctl disable firewalld.service(设置开启不启动)
-
-
开放数据库端口
-
#1、开启防火墙 systemctl start firewalld #2、开放指定端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent #命令含义: #--zone #作用域 #--add-port=3306/tcp #添加端口,格式为:端口/通讯协议 #--permanent #永久生效,没有此参数重启后失效 #3、重启防火墙 firewall-cmd --reload #4、查看端口号 netstat -ntlp //查看当前所有tcp端口· netstat -ntulp | grep 3306 //查看所有3306端口使用情况·
-
-
-