Alibaba Cloud Linux安装
手动部署MySQL数据库(Alibaba Cloud Linux 2) - 云服务器 ECS - 阿里云
重点:
1、跳过密码,按照下面安装中的设置/etc/my.cnf 添加skip-grant-tables
2、其他设置密码方式:
3、进入mysql -u root -p
use mysql;
flush privileges; //设置密码前需要刷新下,否则会报错
ALTER USER 'root'@'%' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER; -----如果是'root'@'localhost' 会报错,命令无法执行
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
update user set host='%' where user='root'; 更新可以远程访问
flush privileges;//刷新权限表
重点:如果window安装和linux安装出现连接测试--》出现乱码,可参考地址:SQLyog错误号码 plugin caching_sha2_password could not be loaded_落月爱学习的博客-CSDN博客_plugin caching_sha2_password
本地连接:
alter user root@localhost identified with mysql_native_password by '123456';
FLUSH PRIVILEGES;
远程连接:
alter user root@'%' identified with mysql_native_password by '123456';
FLUSH PRIVILEGES;
-----------------------------------------------------------------------------------------------------------------------------------------------------------
1.下载rpm(/usr/local/)
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
或者从
2、在线下载mysql
yum -y localinstall mysql80-community-release-el8-1.noarch.rpm 或者
rpm -ivh mysql80-community-release-el8-1.noarch.rpm
3、安装mysql
yum install -y mysql-server 或者yum install mysql-server
4、初始化mysql---忘了了不知道有没有这个步骤
mysqld --initialize //创建数据文件目录和mysql系统数据库 产生随机root密码
重点说明:mysql存储最好放在数据盘,mysql数据可以大到20G以上,如果是系统盘是40G的,那么有可能那天因为磁盘满而无法正常工作。
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /mnt/mysql/data
chmod -R 777 /mnt/mysql/data
mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/mnt/mysql/data ----类似这样的。
重点说明:window 下表名不区分大小写,linux中区分表名大小写,如果业务中设计到表名不区分大小写,设置如下:
mysqld --initialize --lower-case-table-names=1 --目前这种方式不行,报错。不能用
5、启动/关闭mysql
service mysqld start
service mysqld stop
service mysqld restart
6、给var/lib/mysql目录权限授权
chown -R mysql:mysql /var/lib/mysql/
7、无密码登录设置----这里有一个很大的误区
不同版本设置不太一样
/etc/my.cnf 添加skip-grant-tables
最大的误区就是这里,加在这里无效,还是得提示输入密码
正确的做法是,找到 /etc/my.cnf.d 目录下的mysql-server.cnf ,如下图所示,这样加入可以跳过免登陆
修改成功后必须重启mysql 数据库,不然不起作用 service mysqld restart
8、设置密码并设置root用户可以外部服务器访问
mysql -u root -p ----然后回车进行操作
use mysql;
flush privileges; //设置密码前需要刷新下,否则会报错
alter user 'root'@'localhost' identified by '123456'; 修改密码 ---如果以前有过密码命令如下:ALTER USER 'root'@'%' identified by '123456';
update user set host='%' where user='root'; 更新可以远程访问
flush privileges;//刷新权限表
记得最后一步就可以 /etc/my.cnf.d 目录下的mysql-server.cnf 中删除skip-grant-tables ,否则无法远程连接。
9.设置mysql开机启动
systemctl enable mysqld
重点介绍:
1、设置最大数据库连接数,默认151个,mysql工具中每一个查询界面都是一个连接数
show variables like 'max_connections'; --该命令可以查询最大连接数
mysql8.0版本设置最大连接数:
vi /etc/my.cnf.d/mysql-server.cnf
新增一行:max_connections = 1000
如图所示:
2、设置group_concat函数拼接长度,默认1024,如果太长sql自动截取1024长度
vi /etc/my.cnf.d/mysql-server.cnf
新增一行:group_concat_max_len = 102400
如图所示:
重点提示:将mysql日志数据不要放到系统盘中,买一个500G的数据盘,将数据放到数据盘中,如果放到系统盘后续bin.log日志会不断变大,导致系统盘40G占满(阿里默认系统盘40G,可以升级到120G,短暂解决该问题),导致系统任何服务不可用
datadir=/var/lib/mysql ---主要修改该地址
如图所示:系统盘40G,mysql就用了31G