在CentOS7中默认安装了MariaDB,MariaDB是MySQL的分支。在生成环境中还是决定在系统中安装MySQL。MySQL安装完成之后可以直接覆盖掉MariaDB。
选择安装的版本是5.7的。
安装MySQL使用root用户:
1.打开终端,提示符为“$”,表明该用户为普通用户,此时,直接输su,回车,输入root密码,回车,就可以切换到root用户下,此时的提示符变为“#”。
注意,输入密码时终端是不显示的,而且每次切换为root用户都要经过这个过程。
2.切换回普通用户,只要输入 “su 用户名”就OK了。
一、下载MySQL官方的 Yum Repository
可以从官网之间下载后传到CentOS7系统;或者之间用使用下面的命令下载安装用的Yum Repository,大概25KB,然后就可以直接yum安装。
[root@localhost admin]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
二、安装
[root@localhost admin]# yum -y install mysql57-community-release-el7-10.noarch.rpm
接下来安装MySQL服务器:
[root@localhost admin]# yum -y install mysql-community-server
安装MySQL服务器需要处理依赖关系,安装依赖软件包和其他一些处理,等待一段时间。。。结束后会提示如下:
数据库安装完成,接着要进行设置。
三、数据库设置
启动mysql:
[root@localhost admin]# systemctl start mysqld.service
查看mysql状态:
[root@localhost admin]# systemctl status mysqld.service
如图mysql已经正常运行。
接下来要登陆数据库,首先查看初始密码:
[root@localhost admin]# grep "password" /var/log/mysqld.log
登陆数据库,输入上面查到的密码:ydwxJ/<VJ1ag
[root@localhost admin]# mysql -u root -p
此时虽然登陆了,但是不能进行数据操作。因为5.7版本需要修改密码后才可以操作。
测试环境下为了能用简单的密码,先设置一下密码设置规则:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
修改密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
测试
退出登陆后用新设置的密码登陆,成功。
授权远程访问
mysql数据库部署在linux服务器上,服务器在机房,或者是云服务器,mysql默认只允许root帐户在本地登录,为了在其他机器上可以操作数据库,而不是在服务器机器上操作,这就可以修改root允许远程连接,或者添加一个允许远程连接的帐户。
root授权远程访问:
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
mysql> flush privileges;
将所有数据库的所有表(.)的所有权限(all privileges),授予通过任何ip(%)访问的root用户,密码为123456,最后刷新(flush privileges)即可。
添加远程登录用户:
mysql>grant all privileges on *.* to 'testuser'@'%' identified by '123456' with grant option;
添加了一个testuser用户。
最后,在linux上开放防火墙端口。
设置开机启动
[root@localhost admin]# systemctl enable mysqld
[root@localhost admin]# systemctl daemon-reload
数据库配置
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
比如配置数据库默认编码为utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
重新启动mysql服务。
常用数据库命令
1.更改root密码
mysqladmin -uroot password 'yourpassword'
2.远程登陆mysql服务器
mysql -uroot -p -h192.168.137.10 -P3306
3.查询数据库
show databases;
4.进入某个数据库
use databasename;
5.列出数据库中的表
show tables;
6.查看某个表全部字段
desc slow_log;
show create table slow_log\G; (不仅可以显示表信息,还可以显示建表语句)
7.查看当前用户
select user();
8.查看当前所在数据库
select database();
9.创建新数据库(可以指定字符集)
create database db1 charset utf8;
10.创建新表
create table t1 (`id` int(4), `name` char(40));
11.查看数据库版本
select version();
12.查看数据库状态
show status; 当前会话状态
show global status; 全局数据库状态
show slave status\G; 查看主从数据库状态信息
13.查询数据库参数
show variables;
14.修改数据库参数
show variables like 'max_connect%';
set global max_connect_errors = 1000;(重启数据库会失效,要在配置文件中修改)
15.查看当前数据库队列
show processlist;
16.创建普通用户并授权给某个数据库
grant all on databasename.* to 'user1'@'localhost' identified by '123456';
17.查询表数据
select * from mysql.db; //查询该表中的所有字段
select count(*) from mysql.user; //count(*)表示表中有多少行
select db,user from mysql.db; //查询表中的多个字段
select * from mysql.db where host like '10.0.%';在查询语句中可以使用万能匹配 “%”
18.插入一行数据
insert into db1.t1 values (1, 'abc');
19.更改表的某一行数据
update db1.t1 set name='aaa' where id=1;
20.清空表数据
truncate table db1.t1;
21.删除表
drop table db1.t1;
22.清空数据库中的所有表(数据库名是eab12)
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql -f eab12
23.删除数据库
drop database db1;
24.数据库备份
mysqldump -uroot -p'yourpassword' mysql >/tmp/mysql.sql
25.数据库恢复
mysql -uroot -p'yourpassword' mysql </tmp/mysql.sql
26.新建普通用户
CREATE USER name IDENTIFIED BY 'ssapdrow';
27.更改普通用户密码
SET PASSWORD FOR name=PASSWORD('fdddfd');
28.查看name用户权限
SHOW GRANTS FOR name;