通过yum来进行mysql的安装
由于安装的CentOS7.4默认安装了MariaDB,所以只需要启动mariadb数据库就可以正常使用mysql了(安装mariadb:yum install mariadb-server mariadb)
systemctl start mariadb
mariadb数据库的相关命令是:
systemctl start mariadb #启动MariaDB
systemctl stop mariadb #停止MariaDB
systemctl restart mariadb #重启MariaDB
systemctl enable mariadb #设置开机启动
安装mariadb后显示的也是 MariaDB [(none)]> ,可能看起来有点不习惯
接下来重新安装MySQL
---------------------
1、卸载mariadb
yum list installed | grep mariadb #检查mariadb是否已安装
yum -y remove mariadb* #全部卸载
下载mysql的YUM源:wget -P /home/lisonglin http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm(wget命令:http://man.linuxde.net/wget)
由于我们是下载到/home/lisonglin目录下,所以先切换到该目录下:cd /home/lisonglin
安装mysql的YUM源:rpm -ivh mysql57-community-release-el7-11.noarch.rpm
检查mysql的YUM源是否安装成功:yum repolist enabled | grep "mysql.*-community.*"
看到上图所示表示安装成功
选择要启用的mysql版本
查看mysql版本,执行:yum repolist all | grep mysql
可以看到 5.5, 5.6,8.0 版本是默认禁用的
可以通过类似下面的语句来启动或禁用某些版本
yum-config-manager --enable mysql57-community
yum-config-manager --disable mysql56-community
或者通过修改vim /etc/yum.repos.d/mysql-community.repo文件,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0,然后再将5.6源的enabled=0改成enabled=1即可。
注意: 任何时候,只能启用一个版本。
查看当前的启用的 MySQL 版本:yum repolist enabled | grep mysql
yum install mysql-community-server
安装过程中一直输入"y"就可以了,当出现下面的结果时,就代表mysql数据库安装成功了
启动mysql服务:systemctl start mysqld
登录进Mysql:mysql -uroot或mysql
如果出现错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
则说明mysql安装完后给root用户生成了一个默认密码,所以你需要使用密码登录。
为了加强安全性,MySQL5.7为root用户随机生成了一个密码,如果安装的是RPM包,则默认是在/var/log/mysqld.log中。
查看默认密码:grep 'temporary password' /var/log/mysqld.log
sFh5()Ua5j1h就是默认密码。
mysql -uroot -p 回车 然后输入默认密码即可登录myql。
---------------------
可能用到的命令:
systemctl start mysqld #启动mysqld
systemctl stop mysqld #停止mysqld
systemctl restart mysqld #重启mysqld
systemctl enable mysqld #设置开机启动
systemctl status mysqld #查看 MySQL Server 状态
SELECT VERSION(); 显示当前服务器版本
SELECT NOW(); 显示当前日期时间
SELECT USER(); 显示当前用户
设置密码
1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:
#vim /etc/my.cnf(注:windows下修改的是my.ini)
在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:
保存文档并退出:
#:wq
2.接下来我们需要重启MySQL:systemctl restart mysqld #重启mysqld
3.重启之后输入#mysql即可进入mysq
4.接下来就是用sql来修改root的密码
mysql> use mysql;
mysql> update mysql.user set authentication_string=password('root') where user='root' ;
mysql> flush privileges;
mysql> quit
新安装的MySQL5.7,登录时提示密码错误,安装的时候并没有更改密码,后来通过免密码登录的方式更改密码,输入update mysql.user set password=password('root') where user='root'时提示ERROR 1054 (42S22): Unknown column 'password' in 'field list',原来是mysql数据库下已经没有password这个字段了,password字段改成了
authentication_string
所以更改语句替换为update mysql.user set authentication_string=password('root') where user='root' ;即可
到这里root账户就已经重置成新的密码了。
5.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。
设置完密码之后就可以使用mysql -u root -p 命令来登录mysql数据库了
---------------------
防火墙设置
远程访问 MySQL, 需开放默认端口号 3306.
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp
执行firewall-cmd --reload使最新的防火墙设置规则生效
远程访问设置
创建一个普通用户 sa ,密码是123456
CREATE USER 'sa'@'%' IDENTIFIED BY '123456';
给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个账号一般用于提供给实施的系统访问
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'sa'@'%' INDENTIFIED BY ‘123’;
创建一个管理员用户 admin 账号 ,密码是 123456
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
设置用户 root 可以在任意 IP 下被访问:
grant all privileges on *.* to root@"%" identified by "新密码";
设置用户 root 可以在本地被访问:
grant all privileges on *.* to root@"localhost" identified by "新密码";
使授权立刻生效
flush privileges;
数据库操作的第一步是创建数据库:mysql> CREATE DATABASE db1;创建数据库并不表示选定并使用它,必须明确地操作,所以数据库操作的第二步是选择数据库。
下面,来查看下服务器下的数据库列表:mysql> SHOW DATABASES;
需要修改数据库:mysql> ALTER DATABASE db1 CHARACTER SET = utf8;
最后,是删除数据库的操作:mysql> DROP DATABASE db1;
在操作数据库之前,要先了解数据库的语句规范,主要有以下三条
1、关键字与函数名称全部大写
2、数据库名称、表名称、字段名称全部小写
3、SQL语句必须以分号结尾