If Directadmin on your Linux server fails to create users on a remote or locally installed MySQL 5.7+ with an error "Unable to add access host", an example of which is shown below:
Unable to add access host: Details Error executing query: Unknown column 'password' in 'field list' Unable to find user='admin' and host='localhost' Error executing query: Unknown column 'password' in 'field list' Unable to find user='admin_test2' and host='localhost' Error executing query: Unknown column 'password' in 'field list' Unable to find user='admin_testdb' and host='localhost'
here you can learn on how to fix it.
In MySQL 5.7, the `password` field in `mysql`.`user` table was removed, and now the field name is `authentication_string`. Hence Directadmin drops the errors when it's not informed that it's connected to MySQL 5.7+ server, which is actual for our case since it's installed remotely.
More details can be found here: https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-6.html
For MySQL 5.7, it should be using this: https://directadmin.com/features.php?id=1840
to swap the password column with authentication_string for password storage.
CustomBuild 2 should be doing that during the update when you install MySQL 5.7+ locally, so just double check it's set in the /usr/local/directadmin/conf/directadmin.conf.
If MySQL 5.7 is remote, that might be why CustomBuild 2 didn't notice. In which case, using mysql_milestone_16=1 in the directadmin.conf should let DA swap the field correctly.
echo "mysql_milestone_16=1" >> /usr/local/directadmin/conf/directadmin.conf
service directadmin restart