【完整踩坑 Linux下安装Mysql8】

下载配置

ln不允许将硬链接指向目录,建议将mysql放在系统盘

// 下载mysql8
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.18-el7-x86_64.tar.gz

// 解压
tar zxvf mysql-8.0.18-el7-x86_64.tar.gz

//移动到需要安装目录:/usr/local/devtool/mysql8
mv xx/mysql-8.0.18-el7-x86_64/* /usr/local/devtool/mysql8

//如果没有data可以创建一个
cd /usr/local/devtool/mysql8
mkdir data

// 创建组和用户并赋权限
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/devtool/mysql8

//更改配置 添加如下内容
vi /etc/my.cnf

配置文件my.cnf

[mysqld]
#skip-grant-tables  #配置跳过密码登录
user=root
datadir=/usr/local/devtool/mysql8/data
basedir=/usr/local/devtool/mysql8
port=3306
max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
lower_case_table_names=1
group_concat_max_len=102400
[mysql]
default-character-set=utf8
[client]
port=3306
default-character-set=utf8

初始化,保存密码

cd /usr/local/devtool/mysql8/bin
//初始化  注意成功后把最后面密码保存好,以后登录需要用到
sudo ./mysqld --initialize

启动

//添加mysqld服务到系统
cd /usr/local/devtool/mysql8
cp -a ./support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql 
chkconfig --add mysql #mysql设为开机启动,untubu 和debian没有chkconfig命令,用以下替换

//启动mysql
service mysql start
#查看mysql是否启动
ps -ef|grep mysql
#重启
sudo systemctl restart mysql

#连接目录
ln -s /usr/local/devtool/mysql8/bin/mysql /usr/bin

开机启动

//untubu 和debian没有chkconfig命令,用以下替换
apt-get install sysv-rc-conf
sysv-rc-conf --list #查看开机启动的列表
sysv-rc-conf mysql on #mysql 开机启动

如果启动时出错:Failed to start mysql.service: Unit mysql.service is masked

原因可能是之前使用apt-get 安装过mysql,服务被标记过,解除后即可启动:

systemctl unmask mysql.service

缺失文件 libncurses.so.5

#mysql报错:error while loading shared libraries: libncurses.so.5: cannot open shared object file
#查找
ls /lib/x86_64-linux-gnu/libtinfo.so.*
#找到的命令
/lib/x86_64-linux-gnu/libtinfo.so.6.1
#建立软连接
ln -s /lib/x86_64-linux-gnu/libtinfo.so.6.1 libncurses.so.5
#存在连接,先移除
rm libncurses.so.5

#方法2:复制一个libtinfo.so.5,并放入 /lib/x86_64-linux-gnu 目录下:
rm libncurses.so.5
ln -s /usr/lib/libncurses.so.5 /lib/libtinfo.so.5  


登录,修改密码

//登录mysql,密码输入上面保存密码
mysql -uroot -p

#update user set authentication_string = '' where user = 'root'; #密码置空
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

flush privileges;

use mysql;
update user set host='%' where user = 'root';
flush privileges;
exit

跳过密码登录

#停服务
service mysql stop
#修改配置
vi /etc/my.cnf

[mysqld]
skip-grant-tables  #配置跳过密码登录

#启动
service mysql start

#登录,不输密码
mysql -uroot -p
update user set authentication_string = '' where user = 'root'; #密码置空

#重启mysql
sudo systemctl restart mysql

#重新登录,修改密码,如上操作

你可能感兴趣的:(centos,devtools,linux,mysql,数据库)