mysql 版本:mysql-8.0.22
下载地址:
1、官网,太慢了,不推荐;
操作系统版本:CentOS release 6.8 (Final)
下载地址:额,自行下载
centos安装好后,把安装包拷贝到 /usr/local/soft 下。
解压tar包:
tar xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar
解压后如下:
新建一个文件夹mysql_install;
拷贝mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz到新的文件夹;
解压mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
mkdir mysql_install
cp mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz ./mysql_install/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
cd mysql_install/xz-d mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
现在 mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz 解压成了mysql-8.0.22-linux-glibc2.12-x86_64.tar
再对mysql-8.0.22-linux-glibc2.12-x86_64.tar进行解压:
tar xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar
拷贝mysql-8.0.22-linux-glibc2.12-x86_64到/usr/local/mysql下
创建mysql用户和添加用户组
并且给mysql用户和用户组授权mysql文件夹的权限
cp -r mysql-8.0.22-linux-glibc2.12-x86_64 /usr/local/mysql
cd/usr/local/mysql/groupadd mysql
useradd-r -g mysql mysql
chown-R mysql:mysql ./
初始化mysql数据库,随后会生成一个随机的密码,这个密码拷贝下来,后面要用:
./bin/mysqld --initialize
设置一些配置文件位置和mysql配置:
./bin/mysqld \n
--defaults-file=/etc/mysql/my.cnf \n
--basedir=/usr/local/mysql/ \n
--datadir=/var/lib/mysql/ \n
--user=mysql \n
--initialize-insecure \n
--ssl
--explicit_defaults_for_timestamp
./bin/mysql_ssl_rsa_setup --datadir=/var/lib/mysql/ --verbose --uid=mysql
启动服务:
service mysql start
测试报错:
拷贝 /usr/local/mysql/data/auto.cnf文件内容到 /etc/mysql/my.cnf下,如果该文件或目录不存在,则新建
配置my.cnf
vim /etc/mysql/my.cnf
新增:
[mysqld]datadir=/usr/local/mysql/data
pid-file = /usr/local/mysql/data/mysql.pid
basedir= /usr/local/mysql/
同时日志文件 localhost.localdomain.err 文件也是不存在的,如报错所指,在目录/usr/local/mysql/data/下,也要新建:
touch localhost.localdomain.err
然后在赋权限,可用fillezilla或者指令赋权如下效果,随后如果再有错误,就会打印在该文件中:
再次启动mysql服务:service mysql start,再次报错
查看日志:
mysql用户的数据权限问题,重新在/usr/local/mysql目录下给mysql用户赋权:
chown -R mysql:mysql ./
此时启动mysql:service mysql start
成功:
登录,在/usr/local/mysql/bin下:./mysql -u root -p 随后输入密码
进入界面后需要马上修改密码,否则报 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
修改mysql密码:
ALTER USER USER() IDENTIFIED BY '密码';
此时远程连接是不行的,需要设置允许远程用户访问
切换到mysql数据库,赋权,刷新权限。
usemysqlupdate user set host = '%' where user = 'root'
GRANT ALL ON *.* TO 'root'@'%'flushprivileges
更多方式参考链接。
关闭Linux防火墙或者开放3306端口号,即可远程访问数据库。
配置mysql开机自启动 参考:
先将/usr/local/mysql/mysql/support-files/ 文件夹下的mysql.server文件复制到 /etc/rc.d/init.d/ 目录下mysqld
命令: cp /usr/local/mysql/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
赋予可执行权限:chmod +x /etc/init.d/mysqld
添加为服务: chkconfig --add mysqld
查看服务列表: chkconfig --list