Ubuntu的默认mysql版本会安装5.6。貌似5.7以后对分布式数据库有了更好的支持,直接一步到位吧。

下载和解压mysql

官方下载地址:
https://dev.mysql.com/downloads/mysql/
这里写图片描述
最后两个选项是已经经过编译的文件。


解压后可以得到两个文件:
这里写图片描述
嗯,我们直接解压第一个文件,可得:
这里写图片描述

确定mysql的安装目录

cp -r mysql-8.0.11-linux-glibc2.11-x86_64 /usr/local/mysql

en,上面的代码拷贝到mysql目录下,即将/usr/local/mysql作为mysql的安装目录。

新增mysql用户和组,并配置mysql用户对数据库目录的权限

groupadd mysql  
useradd -g mysql mysql  
chown mysql.mysql /usr/local/mysql -R

初始化mysql

cd /usr/local/mysql
/bin/mysqld --initialize --user=mysql  --basedir=/usr/local/mysql --datadir=/media/bear/D/DATA/

basedir:安装目录路径
datadir:数据库数据的根路径
initialize:生成随机密码,使用-initialize-insecure生成空密码。默认帐号root。

异常:

libaio.so.1: cannot open shared object file
sudo apt-get install libaio1

初始化结果:

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/media/bear/D/DATA/
2018-05-30T17:25:12.910340Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) initializing of server in progress as process 7393
2018-05-30T17:25:13.070764Z 0 [Warning] [MY-010122] [Server] One can only use the --user switch if running as root
2018-05-30T17:25:57.313814Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: fsw4Ng*;iWu1
2018-05-30T17:26:39.949727Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) initializing of server has completed

配置文件

vim my.cnf

[mysqld]                                            #服务端基本设置
port = 3307                                         #MySQL监听端口
basedir=/usr/local/mysql                            #使用该目录作为根目录(安装目录)
datadir=/media/bear/D/DATA                          #数据文件存放的目录
socket=/var/lib/mysql/mysql.sock                    #(默认)为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
user=mysql                                          #MySQL启动用户
character_set_server = utf8mb4                      #服务端默认编码(数据库级别)
collation_server = utf8mb4_bin                      #服务端默认的比对规则,排序规则
pid-file=/var/run/mysqld/mysqld.pid                 #(默认)进程文件所在目录
log-error=/var/log/mysql/error.log                  #(默认)错误日志地址

sudo cp ./my.cnf /etc/mysql/my.cnf                  #copy至mysql的配置文件目录

创建进程文件目录

mkdir /var/run/mysqld
chown mysql /var/run/mysqld/ -R

赋予日志目录的写权限

sudo chmod 757 /var/run/mysqld/

设置环境变量

echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/sbin" >> /etc/profile
source  /etc/profile

设置开机启动脚本

cd   /usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysql.server
chkconfig mysql.server on
service mysql.server start

mysql.server start可能出现错误,需要注意,此时可以通过查看/var/log/mysqld.log错误日志进行对应的修改。

忘记登录密码

[mysqld]
+skip-grant-tables                          #跳过用户的权限检查

重启mysql.server,并登录

连接启动的mysql出现:ERROR 2059 (HY000): Authentication plugin
‘caching_sha2_password’ cannot be loaded
solution:
在my.cnf文件中默认有下面的语句,删除前面的#号即可,没有的话就把它添加到my.cnf中
default-authentication-plugin=mysql_native_password

sell> mysql                                     #登录
mysql> use mysql;                               #选择数据库
mysql> FLUSH PRIVILEGES;                        #重新加载grant table
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';   #修改密码
mysql> quit

最后,回复登录时的权限检查即可。

[mysqld]
-skip-grant-tables                          #跳过用户的权限检查
Logo

更多推荐