一、本机环境检查
查看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包
可能要登录Oracle账号,自己注册一个
根据刚才查询的libc版本和架构选择对应的离线包
解压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配置文件
自己根据实际情况去生成
把生成好的配置文件搞到/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