MySql5.7目前CentOS上默认是没有yum源的,yum安装的是 MariaDB。所以我们需要自己先配置yum源。
配置yum源步骤
命令:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm;
如图所示:
命令:rpm -Uvh mysql57-community-release-el7-8.noarch.rpm
查看有哪些版本的mysql:
yum repolist all | grep mysql
命令:yum install -y mysql-community-server
查看mysql状态状态
命令:systemctl status mysqld
启动mysql
命令:systemctl start mysqld
重启mysql
命令:systemctl restart mysqld
设置开机启动
命令:systemctl enable mysqld
命令:systemctl daemon-reload
出现如下图所示说明启动成功:
登录数据库:
mysql5.7的新特性之一就是在初始化的时候会生成一个自定义的密码,然后你需要找到这个密码,登录的时候输入
查看初始化密码:
命令:grep 'temporary password' /var/log/mysqld.log
初始化密码就是:5Lor
登录数据库:这里-p之后不用输入密码,回车后再输入。
命令:mysql -uroot –p
登录之后的样子:
修改密码:
注意,修改的密码太简单会不给修改,把大小写字母和数字加上就肯定可以了。然后切记切记,mysql里面的命令要加分号!分号!分号!
命令:SET PASSWORD = PASSWORD('Admin123!');
安装完成验证没问题之后是无法在本地用工具登录访问的,现在要做两件事,
一、将云服务器上的3306端口开放,如果数据库设置成其他端口请开发对应的端口;
二、配置远程可以访问。
命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Admin123!' WITH GRANT OPTION;
命令:flush privileges;
先设置刚才的密码可以远程登录,然后使用flush命令使配置立即生效。
如果还不行可以尝试重启一下数据库
这时候远程就可以访问数据库了。
退出Mysql客户端命令:exit
1)添加用户
命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
说明:
(1)username——将要创建的用户名;
(2)host——指定该用户在哪个主机上可以登录,"localhost"指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;
(3)password——该用户的登录密码,密码可以为空,若为空则该用户可以不需要密码登录服务器。
例如:
CREATE USER 'test_admin'@'%' IDENTIFIED BY 'admin@123_S';
2)授权用户:
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
(1)privileges——用户的操作权限,如SELECT等。如果授予所有权限则使用ALL。
(2)databasename——数据库名称。tablename——表名。如果要给该用户授予对所有数据库和表的相应操作权限则可用*表示,例如*.*
例如:
GRANT SELECT ON test_db.* TO 'test_admin'@'%';
flush privileges;
注意:必须执行flush privileges;
flush privileges;含义:
mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。
3)撤销用户权限
命令:REVOKE privilege ON databasename.tablename FROM 'username'@'host';
例如:REVOKE SELECT ON test_db.* FROM 'test_admin'@'%';
4)删除用户及权限
命令:drop user 'username'@'host';
5)查看用户权限
命令:SHOW GRANTS FOR 'username'@'host';
Mysql 配置文件yum安装的默认在/etc文件夹下
查看配置文件:
命令:cat /etc/my.cnf
配置如下内容:
具体配置可参考博客:https://www.cnblogs.com/xu743876685/p/8642027.html
#字符集编码utf8
character-set-server=utf8
#支持group by用法
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#设置时区为东八区
default-time_zone = '+8:00'
#不区分表名大小写
lower_case_table_names=1
文件说明
/usr/bin 客户端程序和脚本
/usr/sbin mysqld服务器
/var/lib/mysql 日志文件,数据库文件
/usr/share/mysql 错误消息和字符集文件
/etc/my.cnf 配置文件
把目录移到/data下需要进行下面几步:
命令:mysqladmin -u root -p shutdown 这个过程需要输入密码
命令:cp -R /var/lib/mysql /home/data/ (推荐)或者
mv /var/lib/mysql /home/data/
命令:chown -R mysql:mysql /data/mysql
#datadir=/var/lib/mysql
datadir=/data/mysql
#socket=/var/lib/mysql/mysql.sock
socket=/data/mysql/mysql.sock
注意如果配置完成登录客户端报错的话加上这段配置
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
[client]
socket = /data/mysql/mysql.sock
port= 3306
重启mysql
命令:systemctl restart mysqld
如果报Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
执行命令:
命令:setenforce 0即可!
查看安装
命令:yum list installed mysql*
yum卸载mysql
将列表中出现的名字全部卸载掉,可以使用通配符*表示所有
yum remove mysql-community-*
中途会弹出确认对话,选择y即可
rm -rf /var/lib/mysql
删除
mysql
的
lib
rm –rf /etc/my.cnf
删除配置文件
my.cnf
卸载完成后再次用查看
yum list installed mysql*
查看相关剩余文件,
whereis mysql
发现还有一个 /usr/share/mysql 没有删除,继续删除该文件
查看其它配置
systemctl list-unit-files | grep mysql
到此步说明卸载完成。