Linux-MYSQL8.0保姆级部署

165 阅读2分钟

一、本机环境检查

查看libc版本

root@host:/data/mysql#  ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

查看系统架构

root@host:/data/mysql# getconf LONG_BIT
64

卸载系统默认安装的Mariadb

root@host:/data/mysql# rpm -qa | grep -i mariadb
mariadb-libs-5.5.68-1.el7.x86_64
root@host:/data/mysql# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
root@host:/data/mysql# rpm -qa | grep -i mariadb

二、下载mysql包

dev.mysql.com/downloads/m…

可能要登录Oracle账号,自己注册一个

根据刚才查询的libc版本和架构选择对应的离线包

image.png

解压mysql离线包

root@host:/data/mysql# tar -xvf mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz

建立必须的目录

root@host:/data/mysql/mysql-8.0.36-linux-glibc2.17-x86_64 # pwd
/data/mysql/mysql-8.0.36-linux-glibc2.17-x86_64

root@host:/data/mysql/mysql-8.0.36-linux-glibc2.17-x86_64 # mkdir data

三、生成一份My.cnf配置文件

imysql.com/my-cnf-wiza…

自己根据实际情况去生成

image.png

把生成好的配置文件搞到/etc/my.cnf里去

注意,linux默认区分库、表大小写。如果你跟我一样希望忽略大小写,请把 lower_case_table_names=1加到[mysqld]中

四、创建用户组及用户

[root@localhost local]# groupadd -g 101 dba
[root@localhost local]# useradd -u 514 -g dba -G root -d /data/mysql mysql
[root@localhost local]# id mysql
uid=514(mysql) gid=101(dba) 组=101(dba),0(root)


# Copy环境变量配置文件至mysql用户的home目录中,否则就会出现 bash-4.2$ 这种情况
[root@localhost local]#cp /etc/skel/.* /data/mysql

指定好自己的mysql目录,不要盲目复制

[root@localhost local]# vi /data/mysql/.bashrc

添加如下内容:

# User specific environment and startup programs 
export MYSQL_BASE=/data/mysql/mysql8.0.36
export PATH=${MYSQL_BASE}/bin:$PATH
unset USERNAME 
#stty erase 
set umask to 022 
umask 022
PS1=`uname -n`":"'$USER'":"'$PWD'":>"; export PS1 
## end
[root@localhost local]# source /data/mysql/.bashrc

赋权限和用户组

[root@localhost local]# chown mysql:dba /etc/my.cnf 
[root@localhost local]# chmod 640 /etc/my.cnf 
[root@localhost local]# chown -R mysql:dba /data/mysql/ 
[root@localhost local]# chmod -R 755 /data/mysql/

五、初始化

root用户操作把MySQL加入到系统服务中

root@host:/data/mysql # cp /data/mysql/mysql8.0.36/support-files/mysql.server /etc/rc.d/init.d/mysql
root@host:/data/mysql # chmod +x /etc/rc.d/init.d/mysql

初始化mysql

[root@localhost mysql]#  yum -y install libaio
[root@localhost mysql]# su - mysql
[mysql@localhost ~]$ /data/mysql/mysql8.0.36/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --basedir=/data/mysql/mysql8.0.36/ --datadir=/data/mysql/mysql8.0.36/data/ --initialize

修改初始密码

# 康康密码随机是什么
[mysql@localhost ~]$ cat /data/mysql/mysql8.0.36/data/error.log |grep 'temporary password'
A temporary password is generated for root@localhost: Nhbf=qc>g1ll

# MySql启动!
[mysql@localhost ~]$ service mysql start
Starting MySQL....[  OK  ]

#用刚才康到的随机密码登录
[mysql@localhost ~]$ /data/mysql/mysql8.0.36/bin/mysql -uroot -p'Nhbf=qc>g1ll' 

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES; 
Query OK, 0 rows affected (0.01 sec)

mysql> exit;
Bye

重启服务

[mysql@localhost ~]$ service mysql restart
Shutting down MySQL....[  OK  ]
Starting MySQL...[  OK  ]

设置mysql开机自启动(可选)root用户才有权限执行

[root@xinxingdata ~]# chkconfig --add mysql 
[root@xinxingdata ~]# chkconfig mysql on 
[root@xinxingdata ~]# chkconfig --level 2345 mysql on 
[root@xinxingdata ~]# chkconfig --list

六、用户权限常用操作

创建用户CREATE USER '[username]'@'%' IDENTIFIED BY '[password]';
用户赋权(db.tb)GRANT PRIVILEGE ON [database].[table] TO '[username]'@'%';
用户赋权(ALL)GRANT ALL PRIVILEGES ON . TO '[username]'@'%';
删除用户DROP USER '[username]'@'%';
停用用户ALTER USER '[username]'@'%' ACCOUNT LOCK;
生效修改FLUSH PRIVILEGES;

七、安装精准优化Mysql的组件 MySQLTuner

root@host:/data/mysql# wget http://mysqltuner.pl/ -O mysqltuner.pl && chmod +x mysqltuner.pl