Contos7安装mysql8

1:检查mysql是否安装 rpm -qa| grep mysql
已经安装了库文件,应该先卸载 ,不然会出现覆盖错误,注意卸载是使用了–nodeps选项,忽略 了依赖关系: rpm -e --nodeps 程序文件

1:用xftp把mysql官网下下来的mysql8解压包发送给服务器上

2:解压到/usr/local下,并且把解压包命名mysql方便记忆
tar -zxvf 包路径 解压路径 -V mysql

3: 由于mysql5以上版本没有了data目录,所以需要创建一个
跳转到解压目录 mysql下 mkdir data

4:创建用户和用户组,需要配置给安装的mysql
5:修改usr/local/mysql当前目录的用户(除了data目录,其余都属于root)
chown -R root:root./
chown -R mysql:mysql data

6:初始化数据库(这里碰到一个几个坑)
1:需要安装libaio和namo依赖,不然会报错误
先查看linux下是否安装了这两个依赖
yum list libaio
yum list libaio
查询出来显示@表示已安装
当未安装时可以 yum instarl 软件名 等待安装即可
2:由于mysql8没有script目录,也就没有了my-default.cnf文件,所以执行初始化命令不能带上basedir和datadir
bin/mysqld --initialize --user=mysql --basedir=…–datadir=…(标红处暂时不能带上)
这里会产生一个随机密码,记不住也没关系,后续可以在mysql中修改

7:复制support-files/my-default.cnf这个文件到etc/my.cnf去
前面说了mysql8没有这些东西,所以如下
cd support-files/
touch my-default.cnf 触碰的意思,没有就创建
chmod 777 ./my-default.cnf 修改文件性质
cd ,/
cp support-files/my-default.cnf /etc/my.cnf 负责到指定位置并修改名字

8:修改配置

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

[mysqld]
#skip-grant-tables
#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 = 5186
#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
如果后期mysql运行错误,可以直接到log-errpr = /usr/local/mysql/data/error.log目录下查看错误日志
cat /usr/local/mysql/data/error.log

9:加入开机自启服务
cd support-files/
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql

10:注册服务 (在support-files/下)
chkchonfig --add mysql
chkconfig 查看服务

mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off 标红处显示on代表服务以启动
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off

11:配置环境变量
vim /etc/profile
添加 export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysqlmysql/lib

12:启动mysql服务
cd support-files/
service mysql start 启动mysql
service mysql restart 重启mysql
service mysql stop 关闭mysql
service mysql status 查看mysql状态

13:登录mysql
因为把mysql加入了环境变量path中,所以可以随便在那个位置输入
mysql -u root -p mima 这里会用到上面产生的随机密码
这里有几个问题
1:随机密码没保存怎么办
在/etc/my.cnf中加入skip-grant-tables进入无密码登录模式
2:怎么修改密码
进入后use mysql
ALTER USER USER() IDENTIFIED BY ‘Xiaoming250’;
在刷新即可立即生效 FLUSH PRIVILEGES;
修改成功后把my.cnf中的skip-grant-tables注释掉在重启mysql服务器,即可用修改的密码登录本地mysql,但是远程的navicat暂时登录不了
3:远程登录
1:在navicat链接mysql8以后的版本时,会出现2059的错误,这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。解决此问题有两种方法,一种是更新navicat驱动来解决此问题,一种是将mysql用户登录的加密规则修改为mysql_native_password。本文采用第二种方式。

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; #修改加密规则

ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’; #更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限

2:修改允许访问ip
use mysql
select user,host from user 查看root用户的host值 ,只有值是%才允许所有ip访问
update user set host = ‘%’ where user = ‘root’

完结。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值