11.ubuntu 16.04.6 安装 mysql

1.更新软件源

sudo apt-get update

 

 2.安装mysql

sudo apt-get install mysql-server

 

 

 设置账号和密码

上述命令会安装以下包:
apparmor
mysql-client-5.7
mysql-common
mysql-server
mysql-server-5.7
mysql-server-core-5.7
因此无需再安装mysql-client等。安装过程会提示设置mysql root用户的密码,设置完成后等待自动安装即可。默认安装完成就启动了mysql。

 

3.启动和关闭mysql服务器

#开始
service mysql start
#关闭
service mysql stop   
#重启
service mysql restart 

启动

关闭

 

 确认是否启动成功,mysql节点处于LISTEN状态表示启动成功:

sudo netstat -tap | grep mysql

 

 

4.进入mysql shell界面

mysql -u root -p

输入账号和密码

 

 

5.设置mysql允许远程访问

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

 

保存退出,然后进入mysql服务,执行授权命令:

grant all on *.* to root@'%' identified by '你的密码' with grant option;
flush privileges;

 

 然后执行quit命令退出mysql服务,执行如下命令重启mysql

 

 重启

 

 开机启动mysql

systemctl enable mysql

用客户端连接测试

 

 

附:主从同步

首先两台机器先配置 /etc/my.cnf 的访问权限

查看自己服务器上的配置

cat /etc/apparmor.d/usr.sbin.mysqld

 

 

 可以看到mysql配置文件所在的配置/etc/my.cnf没有访问权限。

修改配置文件 /etc/apparmor.d/usr.sbin.mysqld

vi /etc/apparmor.d/usr.sbin.mysqld

 

 

 重启系统

reboot

  

主:192.168.88.51

从:192.168.88.52

登录主执行

vi /etc/my.cnf

增加

[mysqld] #如果有了就不再创建

log_bin=mysql-bin
server_id=1

保存重启

service mysql restart

 

登录从执行

vi /etc/my.cnf

增加

[mysqld]#如果有了就不再创建
log_bin=mysql-bin
server_id=2

保存重启

service mysql restart

进入主mysql命令行

 

mysql -u root -p
--创建一个账户用来复制,仅限IP为192.168.88.52连接 
mysql> GRANT REPLICATION SLAVE ON *.* TO 'mscopy'@'192.168.88.52' IDENTIFIED BY 'mscopy';
mysql> FLUSH PRIVILEGES;

mysql> show master status;

--记住file和position字段,等会有用

 

 

 进入从命令行

mysql -u root -p

 

--注意MASTER_HOST为主服务器IP
--MASTER_USER,MASTER_PASSWORD为之前在主服务器上创建的账户
--MASTER_LOG_FILE,MASTER_LOG_POS应和上图File,Position字段对应
mysql> CHANGE MASTER TO MASTER_HOST='192.168.88.51', MASTER_USER='mscopy', MASTER_PASSWORD='mscopy', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
--开始复制
mysql> start slave;
mysql> show slave status\G;

 

 

至此从主上创建看看能不能同步

 

注意:

1.配置不区分数据表名大小写

vi /etc/my.cnf

在[mysqld]下面加入lower_case_table_names=1 

 

 保存重启服务

service mysql restart

  

 2.手动恢复从服务器不同步主的情况(恢复之前请先同步两台服务器数据以后再进行)

 

 首先 先停止从服务器192.168.88.52

#登录服务器
mysql -u root -p
#停止从服务
stop slave;

 

 

 再登录主服务器192.168.88.51

#登录账号
mysql -u root -p
#查看主状态
show master status;

  

 

 记录号红框内容

再次回到从服务器

执行命令

change master to master_host='{主IP地址}',master_user='{主账号}', master_password='{主密码}', master_port={端口}, master_log_file='{红框值}', master_log_pos={红框值} ;
#重启从
start slave ;

 

 

重新查看状态恢复正常

 参考:https://blog.csdn.net/liu59412/article/details/104900185

 

 

附:mysql 不区分大小写 https://blog.csdn.net/qq_45502336/article/details/119534955

让MYSQL不区分表名大小写的方法其实很简单:
1.用ROOT登录,修改/etc/my.cnf  (unbuntu 下是: /etc/mysql/mysql.conf.d/mysqld.cnf 路径)
2.在[mysqld]下加入一行:lower_case_table_names=1
    备注:0,区分大小写; 1,不区分
3.重新启动数据库即可
sudo /etc/init.d/mysql restart
 
 
附:binlog 开启
 
如果使用ubuntu请注意:Ubuntu使用了apparmor安全模块,需要先对目录权限进行配置
AppArmor是一个高效和易于使用的Linux系统安全应用程序。
AppArmor对操作系统和应用程序所受到的威胁进行从内到外的保护,甚至是未被发现的0day漏洞和未知的应用程序漏洞所导致的攻击。
AppArmor安全策略可以完全定义个别应用程序可以访问的系统资源与各自的特权。
AppArmor包含大量的默认策略,它将先进的静态分析和基于学习的工具结合起来,AppArmor甚至可以使非常复杂的应用可以使用在很短的时间内应用成功。

编辑 apparmor配置文件

sudo vim /etc/apparmor.d/usr.sbin.mysqld

增加要备份的目录路径

/data/mysql/ r,
/data/mysql/** rwk,

 

重启配置

sudo service apparmor restart

  

然后修改目录访问权限

mkdir -p /data/mysql/
chown -R mysql:mysql /data/mysql/
chmod -R 777 /data/mysql/
 
非ubuntu可以跳过以上步骤
 
vi /etc/mysql/mysql.conf.d/mysqld.cnf

  

[mysqld]
#指定不同mysqlid
server-id=1921686650
#binlog 日志格式
binlog_format=MIXED
#binlog日志文件
log_bin=/data/mysql/mysql-bin
#binlog过期清理时间
expire_logs_days=7
#binlog每个日志文件大小,默认为 1G
max_binlog_size=100m
#binlog缓存大小
binlog_cache_size=4m
#最大binlog缓存大小
max_binlog_cache_size=512m
#指定需要记录 binlog 的数据库
#binlog_do_db=bigserver_sit
#指定忽略记录 binlog 的数据库
#binlog_ignore_db=test

  

#重启数据库
sudo /etc/init.d/mysql restart

 

#查询是否开启binlog
show variables like 'log_%';

 

 

 

 

 

 

 

posted @ 2020-05-19 15:39  疯癫大圣  阅读(177)  评论(0编辑  收藏  举报