Ubuntu20.04下安装MySql8
mysql
下载
到https://dev.mysql.com/downloads/mysql/,
如果无法通过ftp上传到云服务器,可以通过如下命令在服务器端下载
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
解压
xz -d mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
tar xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar
将解压内容移动到/usr/local/mysql下
sudo mkdir /usr/local/mysql
sudo mv mysql-8.0.31-linux-glibc2.12-x86_64/* /usr/local/mysql
cd /usr/local/mysql
创建用户及用户组
sudo groupadd mysql
sudo useradd -g mysql mysql
授权用户
sudo chown -R mysql.mysql /usr/local/mysql
编辑my.cnf文件
sudo vim /etc/my.cnf,追加内容如下:
[mysqld]
user=root
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
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
进入到bin目录下
cd bin
初始化基础信息
最后一行后面会有个随机的初始密码保存下来一会登录要用(如果忘记了就删掉data重新初始化)
sudo ./mysqld --initialize
添加mysqld服务到系统
先返回到mysql目录: cd ..
sudo cp -a ./support-files/mysql.server /etc/init.d/mysql
授权以及添加mysql服务自启动
sudo chmod +x /etc/init.d/mysql
sudo sysv-rc-conf mysql on
ubuntu找不到chkconfig命令
在Ubuntu 中使用 chkconfig命令报错
chkconfig: command not found
问题原因
Ubuntu 中 chkconfig 已经被 sysv-rc-conf 所替代解决办法:
sudo apt-get update sudo apt-get install sysv-rc-conf sysv-rc-conf mysql on #代替 chkconfig mysql enable
在进行安装sysv-rc-conf 有可能会出现Unable to locate package sysv-rc-conf
解决办法:
第一步:打开sources.list文件 vim /etc/apt/sources.list 第二步:在sources.list文件最后一行中添加如下一列文本 deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse 第三步:更新apt-get sudo apt-get update 第四步:重新安装sysv-rc-conf sudo apt-get install sysv-rc-conf 第五步:查看服务情况
启动mysql
sudo service mysql start
将mysql添加到命令服务
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
登录mysql
sudo mysql -uroot -p
解决:error while loading shared libraries:libtinfo.so.5: cannot open shared object file : No such file or directory
查看MYSQL的依赖
ubuntu@VM-4-15-ubuntu:/usr/local/mysql/bin$ ldd mysql linux-vdso.so.1 (0x00007ffcb18b1000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4e5e657000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4e5e651000) libcrypto.so.1.1 => /usr/local/mysql/bin/./../lib/private/libcrypto.so.1.1 (0x00007f4e5e19e000) libssl.so.1.1 => /usr/local/mysql/bin/./../lib/private/libssl.so.1.1 (0x00007f4e5df0e000) libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f4e5def2000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4e5dee6000) libtinfo.so.5 => not found libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f4e5dd04000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4e5dbb5000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f4e5db9a000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4e5d9a8000) /lib64/ld-linux-x86-64.so.2 (0x00007f4e5e685000)
我们可以看到:libtinfo.so.5 => not found
我们可以从https://pan.baidu.com/s/1SFza-Fa2-CVQh955XsJsZA复制该文件到/lib/x86_64-linux-gnu/目录
sudo mv libtinfo.so.5 /lib/x86_64-linux-gnu/
更改root用户密码
注意语句后的; 执行语句忘记写了 可以补个空的;回车也可以将语句执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
更改root连接权限
use mysql;
update user set host='%' where user = 'root';
flush privileges;