IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Ubuntu安装后初始化

    Vacuity发表于 2023-12-04 10:19:33
    love 0
    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
    

    此处我的密码忘记了,因此用到了重置密码[以下仅针对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

    未完待续…



沪ICP备19023445号-2号
友情链接