在Linux上安装Mysql8.0.13以及常见问题解析
1.下载mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz的安装包
云盘下载链接:https://pan.baidu.com/s/1CwH3yKNoQ_dUX4Q2xrA5Aw
提取码:jxbk
2.解压mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
3.将解压的文件重命名mysql,并移动到/usr/local目录下
# mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql
# mv mysql /usr/local/
4.进入到/usr/local目录下,创建用户和用户组并授权
# cd /usr/local/
# groupadd mysql
# useradd -r -g mysql mysql
# cd mysql/ #注意:进入mysql文件下授权所有的文件
# chown -R mysql:mysql ./
5.再/usr/local/mysql目录下,创建data文件夹
# mkdir data
6…初始化数据库,并会自动生成随机密码,记下等下登陆要用
设置lower_case_table_names = 1初始化密码会不出来
初始化密码在/usr/local/mysql/data/error.log
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7.修改/usr/local/mysql当前目录得用户
# chown -R root:root ./
# chown -R mysql:mysql data
8.# cp support-files/my-default.cnf /etc/my.cnf
复制过去,其实也就是空白页,一开始没有my-default.cnf这个文件,可以用# touch my-default.cnf命令创建一个,并配置权限
# chmod 777 ./my-default.cnf
# cd support-files/
# touch my-default.cnf
# chmod 777 ./my-default.cnf
# cd ../
# cp support-files/my-default.cnf /etc/my.cnf
9.配置my.cnf (vi)
# vim /etc/my.cnf
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
tmpdir = /tmp
port = 3306
#lower_case_table_names = 1
# server_id = .....
# socket = .....
#lower_case_table_names = 1
max_allowed_packet=32M
default-authentication-plugin = mysql_native_password
#lower_case_file_system = on
#lower_case_table_names = 1
log_bin_trust_function_creators = ON
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
10.开机自启,进入/u:sr/local/mysql/support-files进行设置
# cd support-files/
# cp mysql.server /etc/init.d/mysql
# chmod +x /etc/init.d/mysql
11.注册服务
# chkconfig --add mysql
如果命令没有,在需要处理chkconfig
# rpm -aq |grep chkconfig
# export PATH=/sbin:$PATH
# chkconfig
# echo $PATH
# PATH="$PATH":/sbin
# echo $PATH
12.查看是否成功
13.etc/ld.so.conf要配置路径,不然报错
# vim /etc/ld.so.conf
添加如下内容:
/usr/local/mysql/lib
14.配置环境变量
# vim /etc/profile
# source /etc/profile
添加如下内容:
#MYSQL ENVIRONMENT
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
15.登陆,这里输入上面第6步随机生成得密码,细心点输入,没有显示的,登陆成功如图所示
16.开启Navicat远程连接
mysql> use mysql; #如果报以下该错误
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER USER() IDENTIFIED BY 'root'; #解决方式
然后继续下面操作,没有错误也是继续下面操作
# mysql -uroot -p #进入数据库
> use mysql;#进入数据库
> select host, user, authentication_string, plugin from user;#查看用户信息
> GRANT ALL ON *.* TO 'root'@'%';#授权root用户可以远程登陆
> flush privileges;#立即生效
> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Kuaigui2019!';#修改root用户密码
> FLUSH PRIVILEGES;#立即生效
> exit;#退出
# service mysql restart#重启mysql服务
遇到的问题:
1.msyql8.0给root用户赋登录的权限遇到问题
2.使用service mysql restart 命令遇到的问题(安装好使用随机密码进不去可参考)
可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有 进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
参考资料: https://blog.youkuaiyun.com/eagle89/article/details/79813405
3.进入后修改密码遇到的报错
解决方案:在修改密码之前执行
> flush privileges;#立即生效
第二次进入,需要在data里面输入,source /etc/profile命令