ubuntu-mysql服务详细使用教程-图文版

一、安装mysql-8.0

  1. 更新apt仓库信息,输入下列命令:

apt update

  1. 安装mysql服务

apt install -y mysql-server

  1. 查看mysql服务状态:

输入下面命令:systemctl status mysql

4.登录mysql设置密码

直接输入命令:mysql

5.在mysql内设置密码为feitian,可自行设置密码

输入命令:

use mysql

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'feitian';

grant all privileges on root.*to root@"%" with grant option;

flush privileges; 刷新权限

6.退出mysql服务台

输入命令:exit;

7.对mysql进行初始化

执行下列命令,此命令是mysql安装后自带的配置程序

mysql_secure_installation

可以通过which命令查看这个自带程序的安装位置

which mysql_secure_installation

输入密码123456

是否开启密码验证插件,如果需要增强密码安全性,输入y并回车,不需要增强直接回车即可

是否更改root密码,需要输入y回车,不需要直接回车,因为刚才该过了这里直接回车

是否移除匿名用户,移除输入y回车,不移除直接回车,这里设置移除

是否禁止root用户远程登陆,禁止输入y回车,不禁止直接回车,这里选择不禁止

是否移除自带的测试数据库,移除输入y回车,不移除直接回车,这里选择不移除

是否刷新权限,输入y刷新,直接回车不刷新,这里选择y刷新

8.重新登陆mysql,使用更改后的密码

mysql -uroot -p

mysql8.0常用命令:

使用mysql数据库

use mysql;

更改root用户密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'feitian';

更新root访问权限为 ‘%’ 为所有主机可访问

update user SET Host = '%' where User = 'root';

刷新权限

flush privileges;

授予root用户对所有数据库和表的相应操作权限, 赋予远程登陆的权限

grant all privileges on *.* to 'root'@'%' with grant option;

查询mysql用户与主机权限

select user,host from mysql.user;

建新的zabbix数据库

create database zabbix character set utf8mb4 collate utf8mb4_bin;

新建测试表tb10

mysql

use test;

create table tb10 (id int);

insert into tb10 values(1),(2);

flush logs;

insert into tb10 values(3),(4);

flush logs;

insert into tb10 values(5),(6);

commit;

查看tb10表格内的数据

select * from tb10;

建新的zabbix用户,确认密码为feitian,允许在任意主机登录

create user zabbix@"%" identified by 'feitian';

赋与zabbix用户在任意主机登陆所有数据库及更改权限

grant all privileges on *.* to 'zabbix'@'%' with grant option;

set global log_bin_trust_function_creators = 1;

刷新权限

flush privileges;

使zabbix可以远程访问数据库mysql

8.修改/etc/mysql/mysql.conf.d/mysqld.cnf文件,有的修改/etc/my.cnf具体根据自身环境来

vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改 bind-address = 0.0.0.0 (远程连接访问)

二、卸载mysql服务,这里卸载为5.7版本

  1. 查看本地mysql依赖详情

dpkg --list | grep mysql

卸载软件及其配置

apt remove mysql-common 

rm -rf /var/lib/mysql  /etc/my.cnf 删除mysql配置文件

一、删除php的相关包及配置sudo apt-get autoremove php7*

二、删除关联sudo find /etc -name "*php*" |xargs rm -rf

三、清除dept列表sudo apt purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

四、检查是否卸载干净(无返回就是卸载完成)dpkg -l | grep php7.0

2.卸载并清除mysql5.7依赖软件

apt autoremove --purge -y mysql-server-5.7

3.清理dpkg的列表中有“rc”状态的软件包

dpkg -l | grep ^rc| awk '{print$2}'| sudo xargs dpkg -P

4.检查依赖项情况,如果输出的结果为空,说明已经卸载干净了,可进行第二步安装,如果不为空继续进行删除卸载

dpkg --list | grep mysql

5.再次执行删除

sudo apt autoremove --purge mysql-apt-config

三、忘记密码如何登陆mysql

1、关闭服务

sudo service mysql stop

2、修改文件

vim/etc/mysql在你的MySQL文件下找到/etc/mysql/mysql.conf.d/mysqld.cnf这个文件

skip-grant-tables

skip-networking

3、重启mysql,修改密码

sudo service mysql restart

修改mysql登陆密码

ues mysql;

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

#mysql5.0版本更改root密码

注意不同版本使用不同的命令

UPDATE user SET authentication_string="123456" WHERE user="root"; #mysql8.0更改root密码

刷新权限

flush privileges;

4、关闭mysql服务

sudo service mysql stop

5、删除my.cnf增加的内容

6、可以登录啦

mysql -u root -p

四、mysql主从复制(主从服务器mysql版本需一致)

安装环境:ubuntu20.04+mysql8.0

提示:mysql3306端口需放开,mysqld.cnf需放开bind =0.0.0.0

服务器:

  • 主机: 192.168.81.130

  • 从机: 192.168.81.131

一. 配置主服务器mysql-master

1.1 修改配置文件

在 /etc/mysql/mysql.conf.d/mysqld.cnf的核心配置文件的[mysqld]节点内,移动光标到文件最底端,修改并新增配置:

[mysqld]

# 主从配置-主机(所有配置必须写在[mysqld]下)

server-id = 0001 # 服务器id,唯一

log_bin = /var/log/mysql/mysql-bin.log # 二进制日志,实现主从的关键

binlog_format = mixed # 日志格式

read-only = 0 #[可选] 0(默认)表示读写(主机),1表示只读(从机)

binlog_expire_logs_seconds = 604800 # 日志过期的时间秒数

max_binlog_size = 200M # 最大二进制日志文件,此参数的最大和默认值是1GB

binlog_do_db = test # 同步的数据库

binlog_ignore_db = mysql,sys #不同步的数据库日志

1.2创建专门用于主从复制用户账号。因此使用root账户登录mysql,并执行如下指令

#登录

mysql -u root -p

#创建用户 我这里用户名为copyuser,注意这里的ip是从库服务器的ip

CREATE USER 'copyuser'@'192.168.81.130' IDENTIFIED WITH mysql_native_password BY '123456';

#给主从复制账号授权

grant replication slave on *.* to 'copyuser'@'192.168.81.130';

刷新权限

flush privileges;

1.3重启主库的mysql

service mysql restart

1.4再次登录mysql,使用如下指令查看master的状态

show master status;

结果类似如下:我们需要关注File和Position的信息,后面要用到。

二、 配置从服务器mysql-slave

1.在 /etc/mysql/mysql.conf.d/mysqld.cnf的核心配置文件的[mysqld]节点内,移动光标到文件最底端,修改并新增配置:

server-id = 2 #服务器 id,随意,但要唯一

log_bin = /var/log/mysql/mysql-bin.log #二进制文件存放路径

read-only = 1 #[可选] 0(默认)表示读写(主机),1表示只读(从机)

binlog_expire_logs_seconds = 2592000 #设置日志文件保留的时长,单位是秒

max_binlog_size = 100M #控制单个二进制日志大小。此参数的最大和默认值是1GB

replicate_do_db = test #待同步的数据库日志

replicate_ignore_db = mysql,sys #不同步的数据库日志

2. 然后重启从库的mysql

service mysql restart

3.实现主从同步,在从库具体配置如下:

#1,先登录mysql,然后执行后续代码

mysql -u root -p密码

#2,关闭从库

stop slave;

#3,设置同步,注意这里是主库ip,日志名称和位置是我们之前上图中看到的名称和位置

change master to master_host='192.168.81.130',master_user='copyuser',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=157;

mysql-bin与master需与配置里对应

#4,开启从库(关闭防火墙)

start slave;

# 5,检查服务器状态

show slave status \G;

检测服务器状态正常情况下如下图:

看到Replica has read all relay log; waiting for more updates基本说明配置成功了,已经开始了主从复制。

这两项参数 为 YES说明搭建成功了:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

五、测试主从复制功能

主节点创建test库,从节点查看是否同步;

create database test;

六、msyql如何导出和导入数据库

把zabbix数据库备份到当前目录下为zabbix.sql

mysqldump -uroot -p zabbix > zabbix.sql

多库备份

mysqldump -uroot -p zabbix mysql test > test msyql zabbix.sql

备份所有库

mysqldump -uroot -p123 –all-databases > all.sql

备份数据库中的表

mysqldump -uroot -p123 db1 user >d:\ db1-user.sql

把数据库test的刚备份的数据导入数据库test

mysql -uroot -p test< test.sql

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值