Mysql8.0.12
- 基本操做
安装服务端 |
yum install mysql-community-server |
启动 |
service mysqld start/restart |
中止 |
service mysqld stop |
由于CentOS7默认安装的是mariadb数据库,因此
- 首先移除
yum remove mariadb-libs.x86_64
- 下载Mysql源
https://dev.mysql.com/downloads/repo/yum/
,这个网站上找到对应的连接,而后在/tmp目录下经过wget下载就能够了
- 安装源
yum localinstall mysql80-munity-release-el7-8.noarch.rpm
- 安装Mysql
yum install mysql-community-server
- 默认密码
cat /var/log/mysqld.log | grep "password"
,就会看到默认的密码
- 登录数据库
mysql -uroot -p上面看到的密码
,此时就会进入数据库
使用默认密码登录
- 首先要重置密码mysql> SET PASSWORD = PASSWORD('123456'); //123456 是重置的新密码 ,可是这样就会又报错,说的是密码太简单了,这个时候就设置一个带有大小写+数字+特殊符号的就能够了
- 若是必定要设置简单的,那么须要修改这两个参数:mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1; ,这个时候再设置简单的也就能够了
- 注意:通过一下午的时间才知道上面的方法已经不行了,首先使用
ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#'
,来进行修改密码,密码不要太简单,而后从新登录,执行这三个命令
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
- 由于这个是mysql的最新版本,详情看这里
https://www.jb51.net/article/142025.htm
远程链接
- 首先进入到数据库中
show databases
;查看数据库,而后进入到mysql数据库中,use mysql
;,查看数据表:show tables
; 而后找到user表,查看里面的数据select * from user \G
,此时会看到好多数据,咱们这里只须要查看Host、User,因此select Host,user from user \G
,就能够看到了
- 这个时候就会看到一条User=root的记录,这个Host后面的值为本机,为了可以远程访问数据库,把这个Host改成要访问的地址,这里为了都能访问就改为
update user set Host = "%" where Host = "localhost" and User = "root";
,而后重启服务器,或者是权限刷新 mysql>flush privileges
; 最后关闭防火墙service firewalld stop
- 此时在本机就能够远程链接到这个数据库了

配置默认编码utf8,这个看我的须要
- 在
vim/etc/my.cnf
,在[mysqld]下添加编码配置,以下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
- 从新启动mysql服务,查看数据库默认编码以下所示
show variables like '%character%'
:

- 默认配置文件路径
日志文件 |
/var/log//var/log/mysqld.log |
服务启动脚本 |
/usr/lib/systemd/system/mysqld.service |
socket文件 |
/var/run/mysqld/mysqld.pid |
开启genelog
- 首先进入到数据库中
mysql -uroot -p
,而后进设置general log保存路径msyql> set global general_log_file="/tmp/general.log";
- 注意在Linux中只能设置到
/tmp
或 /var
文件夹下,设置其余路径出错
- 设置开启
mysql>set global general_log=on;
- 关闭
mysql>set global general_log=off;
- 此时对数据库进行操做的话,每一条命令记录都会到上面的文件中去,
tail -f /tmp/general.log
就会看到每一条操做数据库的命令
新建用户
- 首先进入到数据库中
mysql -uroot -p
,,而后mysql> create user 'imooc'@'%' identified by '123456';
,其中的%表示容许全部用户登录,后面设置的是密码,此时会说密码过于简单,这个时候和上面的操做同样,看注意就好了
- 此时使用终端远程链接的时候就能使用这个imooc这个帐号的了,可是用这个帐号登录,会少不少权限
- 提权
grant all privileges on *.* 'imooc'@'%' identified by '123456' with grant option;
这条命令就是把这个imooc用户提所有的权限,而后刷新权限
- 或者只赋予查询的权限`
grant select on *.* 'imooc'@'%' identified by '123456' with grant option;
,每次操做记得要刷新权限
- 收回全部的权限
revoke all privileges on *.* FROM imooc;
忘记root密码
- 打开这个文件
/etc/my.cnf
,在最后一行加入一行代码skip-grant-tables
- 进入到数据库,这个时候不用密码就能够进了,而后
use mysql
,输入下面的命令update user set authentication_string=password('456789') where user='root';
,刷新权限,退出
- 而后把第一步加入的代码去掉,而后再进入数据库,此时输入第二步设置的密码就会登录成功
导入导出数据库
- 导出数据库:
mysqldump -u 数据库连接用户名 -p 目标数据库 > 存储的文件名
,而后回车输入密码就能够了 ,就像mysqldump -u root -p abc >abc.sql
,文件会直接在当前的目录下
- 导入数据库
mysql -u 用户名 -p 数据库名 < 数据库名.sql
,就像mysql -u abc -p abc < abc.sql
,注意sql文件必须在当前目录下,若是不在当前目录下须要在< 以后加上具体sql文件路径