检测项 |
检测命令 |
标配值 |
|
服务器内存 |
free -m |
32G |
|
硬盘 |
df -h |
1T |
|
seLinux |
getenforce |
Disabled(disabled指关闭,Enforcing指开启 |
|
文件描述符大小 |
ulimit -n |
65535 |
|
其他优化 |
Other |
Other |
卸载服务器自带mysql,清理环境,由于服务器系统可能自带部分mysql的程序,因此安装的时候会干扰新安装的程序,因此需要进行环境清理。
注意:卸载只针对新服务器,如果客户的服务器,先确认客户是否又mysql的库在上面,不要把客户的库给干掉了
执行rpm -qa|grep -i mysql
yum list installed mysql*
可以看到已有mysql5.7版,卸载它
注意:下面的命令,别傻傻的直接贴命令去执行,看清楚后面的版本号,跟前面查出来的版本号。。。
rpm -ev --nodeps mysql-community-release-el7-5.noarch
rpm -ev --nodeps mysql-community-common-5.7.21-1.e17.x86_64
rpm -ev --nodeps mysql-community-client-5.7.21-1.e17.x86_64
rpm -ev --nodeps mysql-community-libs-5.7.21-1.e17.x86_64
rpm -ev --nodeps community-server-5.7.21-1.e17.x86_64
执行
find / -name mysql
上面查出来的目录,用rm -rf删除
注意:先在记事本里面打好rm的命令再去执行,别直接贴,删错东西就凉凉
下面不给你们贴命令,防止你们直接贴,自己手打防错
最后,看看/etc/my.cnf这个文件有没又,如果又得话删掉。
创建mysql目录
mkdir -p /home/data/atsdb //新建文件夹,按路径
mkdir -p /home/data/tool //新建文件夹,按路径
最终创建完后结构如下:
上传mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz到服务器得/opt/data/tool目录
进入/opt/data/tool目录
cd /opt/data/tool //进入指定路径
查看文件是否已上传
ls -l //查看目录中的文件
解压mysql安装包,下面命令解压完后原文件会删掉,我们只用tar的就行
xz -d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz //解压msql的xz文件并删除原文件
解压tar文件,此命令会在目录下生成一个同名的文件夹,里面就是mysql的主程序
tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar //解压mysql的tar文件
移动文件夹到/opt/data目录并改名mysql
mv mysql-8.0.16-linux-glibc2.12-x86_64 /home/data/mysql //移动解压出来的文件夹并改名
最终目录结构如下图
创建mysql用户组与用户,并分配目录给mysql用户
groupadd mysql //创建用户组
useradd -g mysql mysql //创建新用户mysql,并分配给mysql用户在,前面一个是用户组,后面是用户
改变/opt/data目录权限为mysql用户
chown -R mysql.mysql /home/data/ //将/opt/data/目录及子目录的权限用户组都改为mysql用户
最终结果如下图示
my.cnf文件需要放到/etc/目录下
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/opt/data/mysql/mysql.sock
[client]
# # 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/opt/data/mysql/mysql.sock
[mysqld]
# 设置3306端口
port=3306
# 设置可连接IP:0.0.0.0是不限制IP
bind-address=0.0.0.0
# # 允许最大连接数
max_connections=3600
# # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# # 服务端使用的字符集默认为UTF8
character-set-server=utf8
# # 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# # 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
symbolic-links=0
lower_case_table_names=1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
skip-name-resolve
#skip-grant-tables
#设置数据库事务隔离级别
transaction_isolation=READ-COMMITTED
#设置最大长度
group_concat_max_len=102400
basedir=/opt/data/mysql
datadir=/opt/data/atsdb
socket=/opt/data/mysql/mysql.sock
log-error=/opt/data/mysql/mysqld.log
pid-file=/opt/data/mysql/mysqld.pid
进入到mysql的bin目录,执行初始化语句,注意,此处脚本中basedir与datadir要与my.cnf文件中的保持一致,我们采用的是数据文件与运行文件分开方式部署的,所以路径会单独指定。
cd /home/data/mysql/bin
./mysqld –initialize –user=mysql –basedir=/home/data/mysql --datadir=/home/data/atsdb
关键:
打开/opt/data/mysql/mysqld.log文件,里面又初始化后的数据库root密码,注意这个路径是之前配置中的路径
将新的mysql服务复制到init.d目录下,如果提示覆盖,输入yes
cp /opt/data/mysql/support-files/mysql.server /etc/init.d/mysqld
分配执行权限,并加入到开机启动中
chmod +x /etc/init.d/mysqld //添加执行权限
chkconfig --add mysqld //添加到服务启动项
chkconfig --list mysqld //查看服务启动列表
修改全局环境变量,添加mysql环境变量,在/etc/profile最后一行加上mysql的环境变量
vim /etc/profile //全局环境变量文件
文件的最下面添加
##########################mysql-path#################
export PATH=$PATH:/opt/data/mysql/bin:/opt/data/mysql/lib
export PATH
保存并退出,然后生效环境变量文件
source /etc/profile
以上操作完成后启动mysql,
service mysql start //启动命令
service mysql stop //停止命令
service mysql status //查看状态命令
service mysql restart //重启mysql
登陆命令
mysql -uroot -p //回车后输入数据库密码,也就是上面提过的密码
登陆成功后修改数据库密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Fingard@1@#';
flush privileges; //刷新数据
此处密码自行设定,推荐数字大小写符号的租户,例如:Fingard@1@#
默认mysql用户是不允许远程访问的,需要对用户进行修改,通过下面语句查询
use mysql; //要访问那个库都先use 库名
select user,host from mysql.user;
host中localhost说明只允许本地访问
修改root用户允许远程访问
update user set host='%' where user='root';
flush privileges;
再次查看允许访问,发现host已经修改,然后用远程连试试。