Ubuntu安装后初始化
近期由于centos免费版本不再更新,因此把目前的服务器都切成了ubuntu,记录一下自己的处理过程。
以下仅记录自己的处理过程,其他人如对root登录等有意见请忽略我的做法。
请尽量确保你知道每条命令的意义再执行。
登录用户处理
编辑 /etc/ssh/sshd_config 文件;
sudo vim /etc/ssh/sshd_config
找到配置参数:PermitRootLogin ,将该参数后面的值修改为 yes
找到配置参数:PasswordAuthentication ,将该参数后面的值修改为 yes
设置root密码,然后刷新ssh
sudo passwd root
然后重启 ssh 服务
sudo systemctl restart ssh
至此已经可以用root登录ubuntu了。
以下步骤均在root登录情况下执行
更新
apt update
mysql
安装mysql
apt install mysql-server
systemctl status mysql
修改表名大小写敏感
由于我安装的是mysql8,默认表名是大小写敏感的,因此需要改成不敏感(注意这个修改操作需最好刚装好就修改,一旦已经有数据了处理起来就很麻烦),同样以下仅针对mysql8,如其他版本有不同情况请自行搜索处理。
首先打开配置文件:
vim /etc/mysql/mysql.conf.d/mysqld.cnf
在最后添加一行(1表示不敏感):
lower_case_table_names = 1
之后重启服务:
systemctl restart mysql
不出意外会遇到如下错误:
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xeu mysql.service" for details.
这是由于我们更改了大小写敏感,所以原来有些数据会不适配导致重启失败,直接去看错误日志
vim /var/log/mysql/error.log
果然看到如下报错
2023-11-30T10:28:13.150498Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
2023-11-30T10:28:13.150633Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2023-11-30T10:28:13.150663Z 0 [ERROR] [MY-010119] [Server] Aborting
这里听从chatgpt的建议:
删除就数据并重新初始化(请自行备份数据):
rm -rf /var/lib/mysql/*
mysqld --initialize
之后重启服务:
systemctl start mysql
至此服务正常启动。
重置密码
默认好像root只能localhost登录且没有密码,我们需要登录并设置密码:
mysql -uroot -p
此处我的密码忘记了(后面发现是因为执行initialize后会重新生成密码,在/var/log/mysql/error.log可以看到生成的密码),因此用到了重置密码[以下仅针对mysql8版本]:
# 首先停止mysql
systemctl stop mysql
# 然后修改配置,在mysqld添加:
[mysqld]
skip-grant-tables
# 然后启动
systemctl start mysql
# 然后不用密码进入mysql[需要密码直接回车]
mysql -uroot -p
# 将密码置空
use mysql;
update user set authentication_string = '' where user = 'root';
# 退出
quit
删除上面的 skip-grant-tables 配置之后重启数据库服务:
systemctl restart mysql
设置密码
# 登录数据库,提示输入密码时直接敲回车
mysql -u root -p
# 设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
建库、创建用户并授权
# 创建数据库
create database vac_db;
# 创建用户
create user 'vac_user'@'%' identified by 'abc@123';
# 授权
grant all privileges on vac_db.* to vac_user;
# 刷新
flush privileges;
TODO
未完待续…