本来以为mysql装起来分分钟搞定,结果搞了半天,一个个error还不带重样的.
看网上的Linux转mysql也是步骤并不简单, 而且mysql现在已经出到8.0.12版本了, 安装也和之前的有些不一样
前面的下载tar包这里省略不表,在linux解压的时候就遇到了第一个坑
xxxxx.tar.xz
在解压的时候出问题先 xz -d xxx.tar.xz
将 xxx.tar.xz解压成 xxx.tar 然后,再用tar -xvf xxx.tar
来解包。
initialize specified but the data directory has files in it. Aborting
初始化失败这里就比较复杂,首先看一下my.cfg
vi /etc/my.cnf
这里把basedir(mysql的安装路径),datadir(数据库路径)配置好,比如:(这里需要先自己手动创建data的文件夹)
[mysqld]
datadir=/usr/local/database/mysql/mysql-8.0.12/data
basedir=/usr/local/database/mysql/mysql-8.0.12
character-set-server=utf8
port=3306
# socket=/var/lib/mysql/mysql.sock
# log-error=error.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
再尝试初始化
cd /usr/local/database/mysql/mysql-8.0.12/
./bin/mysqld --initialize
mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
这里也看到网上各种解决方法,但是自己觉得最直接的就是给他创建一个log文件夹
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/
mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
这个结合上面我们的/etc/my.cnf
,
第一种方法:
关于socket这一行,如果不做集群的话,把这行注释掉再试试就可以了
第二种方法:
我们看一下/var/lib
,没有mysql文件夹
alternatives chrony dhclient initramfs machines NetworkManager plymouth postfix rpm-state stateless tuned
authconfig dbus games logrotate misc os-prober polkit-1 rpm rsyslog systemd yum
第一步,缺什么创建什么
mkdir /var/lib/mysql
第二部,赋予权限
chmod 777 /var/lib/mysql
The server quit without updating PID file
这里也是有很多原因,大多数原因还是权限的问题
红色框框中的路径拷贝
# chown -R mysql.mysql 拷贝的文件夹路径
chown -R mysql:mysql /usr/local/database/mysql/mysql-8.0.12/data
finally!!!
但是这里只是算是迈出了第一步,要想真正使用mysql,后面还有设置需要做
cd 到mysql安装文件夹目录,设置权限
cp -a ./support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
可以检查一下服务是否生效
chkconfig --list
vi /etc/profile
export MYSQL_HOME=/usr/local/database/mysql/mysql-8.0.12
PATH=/data/mysql/bin:/data/mysql/lib:$PATH
保存退出,使环境变量生效
source /etc/profile
service mysql start
service mysql stop
service mysql restart