在root用户权限下html
# 建立mysql用户和用户组,同时禁止登录 shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql # tar解压mysql压缩包,同时把他移到你向安装的位置 shell> tar -xvf mysql.tar.xz shell> tar -zxvf mysql.tar.gz shell> mv [mysql文件夹] [目的地] shell> cd [目的地] # 在当前文件夹下建立数据文件夹和日志文件夹 PS.这是我我的的习惯 shell> mkdir data shell> mkdir log # 更改当前文件夹下的用户 shell> chown -R mysql ./ shell> chgrp -R mysql ./ # 初始化mysql,这里会生成一个随机密码,能够记下来。若是忘记了,那就只能再来一次。 # 若是不想有随机密码生成,用这个选项 --initialize-insecure,不过这个选项不会在第一次登录的时候提示你去改密码 shell> ./bin/mysql --initialize --user=mysql --basedir=[mysql目录] --datadir[data目录] # 检查是否安装成功,进行启动验证 shell> ./support-files/mysql.server start # 启动以后,登录mysql,而后修改root密码 shell> ./bin/mysql -uroot -p mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; # 容许root帐户远程登录 mysql> use mysql; mysql> update user set host='%' where user='root';
遇到错误不要怕,先看看日志怎么说mysql
解决sql
检查my.cnf
文件中的 log-error
配置,看看这里配置的文件夹和文件是否是不存在。若是存在的话检查权限shell
缘由socket
mysql运行使用的用户是mysql,这个用户没有权限建立文件和文件夹ide
这错误通常在链接的时候出现post
解决方案ui
检查 my.cnf
中 client
条目下关于socket
的配置,若是文件夹不存在的话就给他建立好,而后改变用户和用户组。this
万能方案:都丢到mysql目录下rest
这个错误通常在初始化mysql的时候出现
解决方案
检查目录是否存在以及目录所属用户和用户组
解决方案
shell> cd /usr/lib/systemd/system # 文件名随你定,可是要用“.service”结尾 shell> touch mysqld.service shell> chmod 644 mysqld.service
把下面内容复制进去,文件来自https://dev.mysql.com/doc/mysql-secure-deployment-guide/8.0/en/secure-deployment-post-install.html
[Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql # Have mysqld write its state to the systemd notify socket Type=notify # Disable service start and stop timeout logic of systemd for mysqld service. TimeoutSec=0 # Start main service # 这里要记得改为你的mysqld的路径 ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS # Use this to switch malloc implementation EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit LimitNOFILE = 10000 Restart=on-failure RestartPreventExitStatus=1 # Set environment variable MYSQLD_PARENT_PID. This is required for restart. Environment=MYSQLD_PARENT_PID=1 PrivateTmp=false