mysql安装v2.0

本文详细描述了如何在Linux服务器上卸载旧版MySQL/MariaDB,下载并安装新版本,创建配置文件,初始化数据库,设置服务,修改密码,以及解决libtinfo和密码验证问题。最后提及了Navicat连接问题的解决方案。
摘要由CSDN通过智能技术生成

1.卸载原有的mysql或者maridb

# 查询
rpm -qa|grep mariadb
# 卸载  文件名为上述命令查询出来的文件
rpm -e --nodeps 文件名

2.下载mysql安装包,并上传到linux服务器

#解压安装包
tar xvJf mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz
# 重命
mv mysql-8.0.29-linux-glibc2.12-x86_64 mysql

3.创建配置文件

# 在/etc下创建my.cnf文件,如果有则编辑
创建文件touch my.cnf
[mysqld]
# skip-grant-tables
port=3306
basedir=/usr/local/mysql
# 数据文件夹地址
datadir=/home/jeuso/work/mysql/data
socket=/tmp/mysql.sock
pid-file=/home/jeuso/work/mysql/data/mysql.pid
log-error=/home/jeuso/work/mysql/data/error.log
character_set_server=utf8mb4
user=root
max_connections=1500
symbolic-links=0
# 东八区时区,北京时区
default-time-zone = '+8:00'
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 导入包允许的大小设置
max_allowed_packet=1024M
# 忽略表名大小写;1表示忽略大小写,0表示解析大小写
lower_case_table_names=1


# innodb配置
innodb_buffer_pool_size=2G
# innodb缓冲池实例个数和大小
innodb_buffer_pool_instances=16
innodb_buffer_pool_chunk_size=256M
innodb_file_per_table=ON
# 顺序扫描的缓冲区大小
# record_buffer_size=16773120
# 随机读缓冲区大小
read_rnd_buffer_size=16773120
# 需要进行培训的线程缓冲区大小
sort_buffer_size=16777208
# 表高速缓存的大小
# table_cache=256M
# 可复用保存在缓存中的线程数量
thread_cache_size=80
# log缓存大小,较大的事务,可以增大缓存大小
innodb_log_buffer_size=32M

4.初始化mysql

# 进入mysql安装目录下bin目录
cd /usr/local/mysql/bin
# 执行初始化命令
./mysqld --initialize
# 在打印信息的最后面存在临时root用户密码。保存下来
NC5:oO-ke-ox
gHhrG+TJp7su
>p<ib7.d(o%J

5. 配置mysql服务

# 添加mysqld服务到系统 在mysql安装目录下执行
cp -a ./support-files/mysql.server /etc/init.d/mysql
# 授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
# 启动mysql
systemctl start mysql
# 将mysql命令添加到服务
ln -s /usr/local/mysql/bin/mysql /usr/bin
# 登录测试
mysql -uroot -p
# 如果提示mysql命令找不到,则在etc/profile文件中添加
export PATH=$PATH:/usr/local/mysql/bin
# 刷新配置文件
source /etc/profile

6.修改全局访问以及root用户登录密码

# 登录mysql  使用初始化时的临时密码登录
mysql -uroot -p
# 登录成功mysql 界面  修改数据库
mysql> use mysql;
# 修改远程访问
mysql> update user set host='%' where user='root';
# 刷新权限
mysql> flush privileges;
# 修改root密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'pwd';
mysql> flush privileges;
mysql> quit;

# PS注意端口放行

7.问题

7.1控制台没有打印临时密码

第一种方法:先在/var/log/mysqld.log中看,在文件最后面有写(或者mysql.log)

PS:在error.log文件中

grep "password" /var/log/mysqld.log

第二种方法:在/etc/my.cnf中添加跳过密码验证

[mysqld]
# 跳过密码验证
skip-grant-tables
port=3306


# 修改完成后重启mysql服务
systemctl restart mysql
# 直接登录,不需要密码
mysql -uroot
# 执行第5步修改密码, 此时需要按照顺序执行,如果直接alter可能会提示  此时是使用跳过权限登录的,所以不允许修改

# 修改完成后,还原my.cnf文件,重启mysql服务

7.2 libtinfo版本问题(error while loading shared libraries: libncurses.so.5: cannot open shared object file)

# 运行mysql时提示:mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
# 管理员权限执行 如果不成功 检查版本
1.查找
没有libncurses.so.5,可能有libncurses.so不同版本的文件,使用命令
find / -name 'libncurses*'
2. 建立软链接
ln -s libncurses.so.6.2 libncurses.so.5

ln -s /lib64/libtinfo.so.6 /lib64/libtinfo.so.5

7.3mysql8密码安全验证问题,使用Navicat连接不上

# 原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则改为caching_sha2_password
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '!Q2w3e4r5t6y';
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值