1、在安装之前,如果你的系统曾经安装过Mariadb,请先卸载:
2、安装依赖 1 2 3 yum install -y epel-release yum update -y yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost-doc boost-devel libaio-devel
3、下载解压MySQL源码包
1 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
或者通过以下链接下载上传https://kdy.zhongshenglong.xyz:163/#s/8NA6ajaA
1 2 tar -zxf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql
4、配置环境变量
1 2 #添加如下内容 export PATH=/opt/mysql/bin:$PATH
然后source生效
5、添加用户并授权相关 1 2 3 4 5 6 7 8 9 useradd mysql id mysql mkdir /u01/data/mysql -p mkdir /var/log/mariadb touch /var/log/mariadb/mariadb.log chown -R mysql:mysql /opt/mysql/* chown -R mysql:mysql /u01/data/* chown -R mysql:mysql /var/log/mariadb/
其中:
/opt/mysql/ 是MySQL软件所在目录。 /u01/data/mysql 是将来存放MySQL数据的目录。
6、初始化数据库 1 mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/u01/data/mysql
上述参数,并不难理解:
–initialize-insecure,表示不安全的初始化。这个参数来自于–initialize参数,在MySQL5.7版本中,在初始化成功后,会生成一个临时密码,相对比较麻烦,所以这里改为–initialize-insecure,初始化成功后,密码为空。
–user=mysql,管理MySQL的用户是mysql。
–basedir=/opt/mysql,是你MySQL的安装目录。
–datadir=/u01/data/mysql,是管理数据的目录。
7、在初始化完成后,你的MySQL的数据目录,应该有这些文件:
配置文件
1 2 3 4 5 6 7 8 9 10 [mysqld] user=mysql basedir=/opt/mysql datadir=/u01/data/mysql server_id=6 port=3306 socket=/tmp/mysql.sock [mysql] socket=/tmp/mysql.sock prompt=3306 [\\d]>
8、管理MySQL_etc/init.d 1 cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld
9、启动、重启命令 1 2 service mysqld start service mysqld restart
10、如果设置密码不成功,可绕过密码登录,重新设置 1 2 /etc/init.d/mysqld stop mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
1 2 3 4 5 6 7 8 update mysql.user set authentication_string=PASSWORD("123456") where user='root'and host='localhost'; flush privileges; /etc/init.d/mysqld restart mysql -uroot -p 成功!!
centos8 安装mysql5.7 后,mysql命令登录不成功, 报错:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory。 按照百度的方法都不成功,应该和系统版本有关,后来自己想到一个方法:yum install libncurses*,完美解决问题。