在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/ 此时虽然登陆了,但是不能进行数据操作。因为5.7版本需要修改密码后才可以操作。 修改密码: 退出登陆后用新设置的密码登陆,成功。 mysql数据库部署在linux服务器上,服务器在机房,或者是云服务器,mysql默认只允许root帐户在本地登录,为了在其他机器上可以操作数据库,而不是在服务器机器上操作,这就可以修改root允许远程连接,或者添加一个允许远程连接的帐户。 将所有数据库的所有表(.)的所有权限(all privileges),授予通过任何ip(%)访问的root用户,密码为123456,最后刷新(flush privileges)即可。 添加远程登录用户: 添加了一个testuser用户。 默认配置文件路径: 比如配置数据库默认编码为utf8 重新启动mysql服务。 1.更改root密码 2.远程登陆mysql服务器 3.查询数据库 4.进入某个数据库 5.列出数据库中的表 6.查看某个表全部字段 7.查看当前用户 8.查看当前所在数据库 9.创建新数据库(可以指定字符集) 10.创建新表 11.查看数据库版本 12.查看数据库状态 13.查询数据库参数 14.修改数据库参数 15.查看当前数据库队列 16.创建普通用户并授权给某个数据库 17.查询表数据 18.插入一行数据 19.更改表的某一行数据 20.清空表数据 21.删除表 22.清空数据库中的所有表(数据库名是eab12) 23.删除数据库 24.数据库备份 25.数据库恢复 26.新建普通用户 27.更改普通用户密码 28.查看name用户权限[root@localhost admin]# mysql -u root -p
测试环境下为了能用简单的密码,先设置一下密码设置规则:mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
测试
授权远程访问
root授权远程访问:mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
mysql> flush privileges;
mysql>grant all privileges on *.* to 'testuser'@'%' identified by '123456' with grant option;
最后,在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
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
常用数据库命令
mysqladmin -uroot password 'yourpassword'
mysql -uroot -p -h192.168.137.10 -P3306
show databases;
use databasename;
show tables;
desc slow_log;
show create table slow_log\G; (不仅可以显示表信息,还可以显示建表语句)
select user();
select database();
create database db1 charset utf8;
create table t1 (`id` int(4), `name` char(40));
select version();
show status; 当前会话状态
show global status; 全局数据库状态
show slave status\G; 查看主从数据库状态信息
show variables;
show variables like 'max_connect%';
set global max_connect_errors = 1000;(重启数据库会失效,要在配置文件中修改)
show processlist;
grant all on databasename.* to 'user1'@'localhost' identified by '123456';
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.%';在查询语句中可以使用万能匹配 “%”
insert into db1.t1 values (1, 'abc');
update db1.t1 set name='aaa' where id=1;
truncate table db1.t1;
drop table db1.t1;
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql -f eab12
drop database db1;
mysqldump -uroot -p'yourpassword' mysql >/tmp/mysql.sql
mysql -uroot -p'yourpassword' mysql
CREATE USER name IDENTIFIED BY 'ssapdrow';
SET PASSWORD FOR name=PASSWORD('fdddfd');
SHOW GRANTS FOR name;