Ubuntu安装后初始化

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

未完待续…