1.下载安装包
访问下面的地址然后根据提示进行下载安装包
https://www.mysql.com/
2.安装MySQL
将下载好的安装包上传到服务器, 然后解压
tar -xvf mysql-8.0.16-el7-x86_64.tar.gz
然后将解压目录重命名为mysql-8.0.16
mv mysql-8.0.16-el7-x86_64 mysql-8.0.16
在mysql下创建data、logs 、mysqld目录
cd mysql-8.0.16
mkdir data logs mysqld
创建mysql用户组和mysql用户
groupadd mysql
useradd -r -g mysql mysql
更改mysql-8.0.16的权限
chown -R mysql:mysql mysql-8.0.16
创建配置文件
vi my.cnf
将下面内容替换为实际路径后,添加到my.cnf文件内
[mysqld]
socket=/tmp/mysql.sock
port = 3326
default-time_zone = '+8:00'
basedir=/etc/mysql-8.0.16
datadir=/etc/mysql-8.0.16/data
innodb_buffer_pool_size = 3G
max_connections = 1000
wait_timeout = 600
interactive_timeout = 600
log_bin=/etc/mysql-8.0.16/logs
pid-file=/etc/mysql-8.0.16/mysqld/mysql.pid
server-id=16
binlog_format=mixed
character_set_server=UTF8MB4
#skip-name-resolve
autocommit = 1
sort_buffer_size = 32M
join_buffer_size = 128M
tmp_table_size = 72M
max_allowed_packet = 16M
read_buffer_size = 16M
read_rnd_buffer_size = 32M
lower_case_table_names = 1
#skip_networking
table_open_cache = 400
thread_cache_size=768
key_buffer_size=32M
read_buffer_size=8M
read_rnd_buffer_size=4M
back_log=1024
#flush_time=0
open_files_limit=65535
table_definition_cache=1400
log_throttle_queries_not_using_indexes = 10
binlog_expire_logs_seconds=30
min_examined_row_limit = 100
#slow-query-log=0
innodb_log_file_size = 200M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
secure_file_priv=''
#skip-grant-tables
skip-name-resolve #禁止MySQL对外部链接进行DNS解析skip-grant-tables
[mysqld_safe]
log-error=/etc/mysql-8.0.16/logs/mysql-error.log
进入数据安装目录下初始化
./bin/mysqld --initialize --user=root --basedir=/etc/mysql-8.0.16 --datadir=/etc/mysql-8.0.16/data
执行的时候报错:
解决方法:
yum install -y libaio
安装后在初始化就OK了
安装完后又报错
执行如下命令
yum -y install numactl
安装完成后继续初始化, 执行的时候又报错如下
./bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.14’ not found (required by ./mysqld)
这个是由于动态库版本低,查看系统glibc支持的版本:
strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE
查看glibc的rpm安装包
rpm -qa |grep glibc
glibc-static-2.12-1.80.el6_3.6.x86_64
glibc-headers-2.12-1.80.el6_3.6.x86_64
glibc-common-2.12-1.80.el6_3.6.x86_64
glibc-devel-2.12-1.80.el6_3.6.x86_64
glibc-static-2.12-1.80.el6_3.6.i686
glibc-devel-2.12-1.80.el6_3.6.i686
glibc-2.12-1.80.el6_3.6.i686
glibc-2.12-1.80.el6_3.6.x86_64
具体解决方法查看下面地址
https://blog.csdn.net/a1035082174/article/details/100552784
解决完上述报错后,然后重新执行初始化发现又报错
ll /usr/lib64/libstdc++.so.6
cp /home/libstdc++.so.6.0.19 /usr/lib64/
rm -rf /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.19 /usr/lib64/libstdc++.so.6
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
出现这个不影响 可以继续去安装数据库了 (hodfb%nwI99b为root的初始密码)
./mysqld --initialize --user=root --basedir=/etc/mysql-8.0.16 --datadir=/etc/mysql-8.0.16/data
添加系统路径
vim /etc/profile
将下面的内容添加
export PATH=/etc/mysql-8.0.16/bin:$PATH
刷新环境变量
source /etc/profile
设置开机自启
cd /etc/mysql-8.0.16/support-files
cp mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
修改启动脚本
vi /etc/init.d/mysqld
修改里面的datadir= basedir= 为你mysql的实际的部署目录具体查看你的mysql的my.cnf文件
初始密码为初始化成功后的root@localhost: 这里就是初始密码
启动数据库
service mysqld start
启动的时候报错如下:
出现这个错误查看日志
这个是设置表名不区分大小写的,但是如果注掉以后在要设置的时候MySQL8.0是无法重新设置的。此时建议把datadir配置目录下的内容全部删除,重新初始化
如果报错不是上述情况 ,也可以尝试重新把mysql-8.0.16文件重新授权给mysql用户,然后重新启动
chown -R mysql:mysql mysql-8.0.16
进入命令行
mysql -uroot –p
输入你查看的初始密码进入
出现这个以后在配置文件my.cnf中添加default_authentication_plugin = mysql_native_password
然后删除datadir配置目录下的内容,重新初始化数据库‘
./mysqld --initialize --user=mysql --basedir=/etc/mysql-8.0.16 --datadir=/etc/mysql-8.0.16/data
终于可以正常登录了,进来以后先修改root的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root@2019';
create database tacs_user default character set utf8; 创建数据库
CREATE USER 'user'@'%' IDENTIFIED BY 'user123'; 创建用户
使用navicat登录MySQL发现报错
这是因为没有开启远程连接,先创建远程连接
use mysql;
select host,user,authentication_string, plugin from user;
修改加密方式
update user set plugin='mysql_native_password' where user='root';
修改连接权限
update user set host='%' ,authentication_string="" where user='root'; 此处密码置为空
重启数据库
service mysqld restart
修改密码
ALTER USER 'root'@'%' IDENTIFIED BY 'root@2019';
授权远程连接
grant all on *.* to 'root'@'%'with grant option;
刷新权限
flush privileges;
撤销权限
revoke all privileges on *.* from 'monitor'@'%';
flush privileges;
升级glibc库后,使用xshell登录linux,提示:
执行locale命令,提示如下异常,说明说明没安装en_US的local
解决方案,修改如下:
vi /etc/sysconfig/i18n
添加下面的
LC_ALL=C
export LC_ALL
再执行下面的语句,使之生效
source /etc/sysconfig/i18n